]> git.donarmstrong.com Git - lilypond.git/commitdiff
Imported Upstream version 2.19.47
authorDr. Tobias Quathamer <toddy@debian.org>
Fri, 9 Sep 2016 12:15:55 +0000 (14:15 +0200)
committerDr. Tobias Quathamer <toddy@debian.org>
Fri, 9 Sep 2016 12:15:55 +0000 (14:15 +0200)
208 files changed:
.gitfilelist
AUTHORS.txt
Documentation/ca/learning.tely
Documentation/ca/learning/common-notation.itely
Documentation/ca/learning/fundamental.itely
Documentation/ca/learning/tutorial.itely
Documentation/ca/learning/tweaks.itely
Documentation/ca/notation.tely [new file with mode: 0644]
Documentation/ca/notation/notation.itely [new file with mode: 0644]
Documentation/ca/notation/pitches.itely [new file with mode: 0644]
Documentation/ca/translations.itexi
Documentation/ca/usage/running.itely
Documentation/ca/usage/suggestions.itely
Documentation/ca/web.texi
Documentation/ca/web/community.itexi
Documentation/ca/web/introduction.itexi
Documentation/ca/web/manuals.itexi
Documentation/ca/web/news-front.itexi
Documentation/changes.tely
Documentation/contributor/doc-translation-list.itexi
Documentation/contributor/doc-work.itexi
Documentation/contributor/programming-work.itexi
Documentation/contributor/release-work.itexi
Documentation/contributor/source-code.itexi
Documentation/cs/learning/fundamental.itely
Documentation/cs/learning/tutorial.itely
Documentation/cs/learning/tweaks.itely
Documentation/cs/translations.itexi
Documentation/cs/usage/running.itely
Documentation/cs/web/community.itexi
Documentation/cs/web/introduction.itexi
Documentation/cyrillic.itexi
Documentation/de/extending/programming-interface.itely
Documentation/de/extending/scheme-tutorial.itely
Documentation/de/learning/tweaks.itely
Documentation/de/notation/changing-defaults.itely
Documentation/de/notation/input.itely
Documentation/de/notation/pitches.itely
Documentation/de/notation/rhythms.itely
Documentation/de/texidocs/snap-pizzicato-bartok-pizzicato.texidoc
Documentation/de/translations.itexi
Documentation/de/usage/lilypond-book.itely
Documentation/de/usage/running.itely
Documentation/de/web/introduction.itexi
Documentation/es/learning/tweaks.itely
Documentation/es/notation/changing-defaults.itely
Documentation/es/notation/fretted-strings.itely
Documentation/es/notation/input.itely
Documentation/es/notation/rhythms.itely
Documentation/es/translations.itexi
Documentation/es/usage/suggestions.itely
Documentation/es/web/introduction.itexi
Documentation/es/web/news-front.itexi
Documentation/es/web/news.itexi
Documentation/extending/scheme-tutorial.itely
Documentation/fr/essay/literature.itely
Documentation/fr/extending/programming-interface.itely
Documentation/fr/learning/templates.itely
Documentation/fr/learning/tutorial.itely
Documentation/fr/learning/tweaks.itely
Documentation/fr/notation/ancient.itely
Documentation/fr/notation/changing-defaults.itely
Documentation/fr/notation/chords.itely
Documentation/fr/notation/contemporary.itely
Documentation/fr/notation/editorial.itely
Documentation/fr/notation/expressive.itely
Documentation/fr/notation/fretted-strings.itely
Documentation/fr/notation/input.itely
Documentation/fr/notation/notation-appendices.itely
Documentation/fr/notation/percussion.itely
Documentation/fr/notation/pitches.itely
Documentation/fr/notation/rhythms.itely
Documentation/fr/notation/simultaneous.itely
Documentation/fr/notation/spacing.itely
Documentation/fr/notation/staff.itely
Documentation/fr/notation/unfretted-strings.itely
Documentation/fr/notation/vocal.itely
Documentation/fr/texidocs/engravers-one-by-one.texidoc
Documentation/fr/translations.itexi
Documentation/fr/usage/suggestions.itely
Documentation/fr/web/community.itexi
Documentation/fr/web/introduction.itexi
Documentation/hu/translations.itexi
Documentation/hu/web/community.itexi
Documentation/hu/web/introduction.itexi
Documentation/included/compile.itexi
Documentation/it/learning/fundamental.itely
Documentation/it/learning/tweaks.itely
Documentation/it/notation/changing-defaults.itely
Documentation/it/notation/input.itely
Documentation/it/notation/pitches.itely
Documentation/it/notation/rhythms.itely
Documentation/it/translations.itexi
Documentation/it/usage/external.itely
Documentation/it/usage/lilypond-book.itely
Documentation/it/web/introduction.itexi
Documentation/ja/learning/tweaks.itely
Documentation/ja/notation/changing-defaults.itely
Documentation/ja/notation/input.itely
Documentation/ja/notation/rhythms.itely
Documentation/ja/notation/spacing.itely
Documentation/ja/translations.itexi
Documentation/ja/usage/running.itely
Documentation/ja/web/introduction.itexi
Documentation/learning/tweaks.itely
Documentation/lilypond-texi2html.init
Documentation/ly-examples/orchestra.ly
Documentation/macros.itexi
Documentation/misc/announce-v2.12.ca.html [new file with mode: 0644]
Documentation/misc/browser-language.ca.html [new file with mode: 0644]
Documentation/nl/learning/tweaks.itely
Documentation/nl/translations.itexi
Documentation/nl/web/introduction.itexi
Documentation/notation/ancient.itely
Documentation/notation/changing-defaults.itely
Documentation/notation/chords.itely
Documentation/notation/contemporary.itely
Documentation/notation/editorial.itely
Documentation/notation/expressive.itely
Documentation/notation/fretted-strings.itely
Documentation/notation/input.itely
Documentation/notation/notation-appendices.itely
Documentation/notation/percussion.itely
Documentation/notation/pitches.itely
Documentation/notation/rhythms.itely
Documentation/notation/simultaneous.itely
Documentation/notation/spacing.itely
Documentation/notation/staff.itely
Documentation/notation/text.itely
Documentation/notation/unfretted-strings.itely
Documentation/notation/vocal.itely
Documentation/po/ca.po
Documentation/po/cs.po
Documentation/po/de.po
Documentation/po/es.po
Documentation/po/fr.po
Documentation/po/hu.po
Documentation/po/it.po
Documentation/po/ja.po
Documentation/po/nl.po
Documentation/po/zh.po
Documentation/snippets/engravers-one-by-one.ly
Documentation/translations.itexi
Documentation/usage/suggestions.itely
Documentation/web/introduction.itexi
Documentation/web/news-front.itexi
Documentation/web/news.itexi
Documentation/zh/translations.itexi
INSTALL.txt
NEWS.txt
README.txt
VERSION
input/regression/context-mod-with.ly
input/regression/midi/crescendo-abutting.ly [deleted file]
input/regression/midi/crescendo-gap-compatible-target.ly [new file with mode: 0644]
input/regression/midi/crescendo-return-crescendo.ly [new file with mode: 0644]
input/regression/midi/crescendo-return-louder-target.ly [new file with mode: 0644]
input/regression/midi/crescendo-return-softer-target.ly [new file with mode: 0644]
input/regression/midi/crescendo-return-unspecified-target.ly [new file with mode: 0644]
input/regression/midi/crescendo-single-compatible-target.ly [new file with mode: 0644]
input/regression/midi/crescendo-single-unspecified-target.ly [new file with mode: 0644]
input/regression/midi/decrescendo-multiple-compatible-target.ly [new file with mode: 0644]
input/regression/midi/decrescendo-single-contrary-target.ly [new file with mode: 0644]
input/regression/midi/dynamic-voices-sequential.ly [new file with mode: 0644]
input/regression/midi/dynamic-voices-simultaneous.ly [new file with mode: 0644]
input/regression/midi/midi-overlapping-notes.ly [new file with mode: 0644]
input/regression/remove-empty-context-mod.ly
input/regression/retrograde.ly [new file with mode: 0644]
input/regression/scheme-text-spanner.ly
input/regression/spacing-to-empty-barline.ly
lily/audio-item.cc
lily/dynamic-performer.cc
lily/grob.cc
lily/include/audio-item.hh
lily/include/lily-proto.hh
lily/include/midi-cc-announcer.hh [new file with mode: 0644]
lily/include/midi-item.hh
lily/include/slur-engraver.hh
lily/midi-cc-announcer.cc [new file with mode: 0644]
lily/midi-cc-performer.cc [new file with mode: 0644]
lily/midi-control-function-performer.cc [deleted file]
lily/midi-item.cc
lily/midi-walker.cc
lily/output-property-engraver.cc
lily/parser.yy
lily/slur-engraver.cc
lily/staff-performer.cc
ly/Welcome-to-LilyPond-MacOS.ly
ly/Welcome_to_LilyPond.ly
ly/engraver-init.ly
ly/grace-init.ly
ly/music-functions-init.ly
ly/performer-init.ly
ly/spanners-init.ly
out/ChangeLog
out/RELEASE-COMMIT
po/ca.po
po/lilypond.pot
python/convertrules.py
scm/define-grob-properties.scm
scm/define-grobs.scm
scm/define-music-properties.scm
scm/define-music-types.scm
scm/framework-ps.scm
scm/modal-transforms.scm
scm/ps-to-png.scm
scripts/midi2ly.py
tex/texinfo.tex

index ea8f1441ba9db393d7968c14386acfc89188d282..633ca3ccc07e011f334f320129fb42ea6de01864 100644 (file)
@@ -14,6 +14,9 @@ Documentation/ca/learning/templates.itely
 Documentation/ca/learning/tutorial.itely
 Documentation/ca/learning/tweaks.itely
 Documentation/ca/macros.itexi
+Documentation/ca/notation.tely
+Documentation/ca/notation/notation.itely
+Documentation/ca/notation/pitches.itely
 Documentation/ca/search-box.ihtml
 Documentation/ca/translations.itexi
 Documentation/ca/usage.tely
@@ -1425,6 +1428,7 @@ Documentation/misc/THANKS-2.6
 Documentation/misc/THANKS-2.8
 Documentation/misc/announce-v2.0.html
 Documentation/misc/announce-v2.10.html
+Documentation/misc/announce-v2.12.ca.html
 Documentation/misc/announce-v2.12.de.html
 Documentation/misc/announce-v2.12.es.html
 Documentation/misc/announce-v2.12.fr.html
@@ -1433,6 +1437,7 @@ Documentation/misc/announce-v2.2.html
 Documentation/misc/announce-v2.4.html
 Documentation/misc/announce-v2.6.html
 Documentation/misc/announce-v2.8.html
+Documentation/misc/browser-language.ca.html
 Documentation/misc/browser-language.de.html
 Documentation/misc/browser-language.es.html
 Documentation/misc/browser-language.fr.html
@@ -3050,12 +3055,23 @@ input/regression/midi-tuplets.ly
 input/regression/midi-unisons.ly
 input/regression/midi-volume-equaliser.ly
 input/regression/midi/GNUmakefile
-input/regression/midi/crescendo-abutting.ly
+input/regression/midi/crescendo-gap-compatible-target.ly
+input/regression/midi/crescendo-return-crescendo.ly
+input/regression/midi/crescendo-return-louder-target.ly
+input/regression/midi/crescendo-return-softer-target.ly
+input/regression/midi/crescendo-return-unspecified-target.ly
+input/regression/midi/crescendo-single-compatible-target.ly
+input/regression/midi/crescendo-single-unspecified-target.ly
+input/regression/midi/decrescendo-multiple-compatible-target.ly
+input/regression/midi/decrescendo-single-contrary-target.ly
 input/regression/midi/dynamic-initial.ly
+input/regression/midi/dynamic-voices-sequential.ly
+input/regression/midi/dynamic-voices-simultaneous.ly
 input/regression/midi/key-initial.ly
 input/regression/midi/key-option-all-staves.ly
 input/regression/midi/key-option.ly
 input/regression/midi/lyrics-addlyrics.ly
+input/regression/midi/midi-overlapping-notes.ly
 input/regression/midi/partcombine.ly
 input/regression/midi/quantize-duration-2.ly
 input/regression/midi/quantize-duration.ly
@@ -3512,6 +3528,7 @@ input/regression/rest-polyphonic-2.ly
 input/regression/rest-polyphonic.ly
 input/regression/rest-positioning.ly
 input/regression/rest.ly
+input/regression/retrograde.ly
 input/regression/revert-once.ly
 input/regression/rhythmic-sequence.ly
 input/regression/rhythmic-staff.ly
@@ -4112,6 +4129,7 @@ lily/include/main.hh
 lily/include/measure-grouping-spanner.hh
 lily/include/melody-spanner.hh
 lily/include/mensural-ligature.hh
+lily/include/midi-cc-announcer.hh
 lily/include/midi-chunk.hh
 lily/include/midi-item.hh
 lily/include/midi-stream.hh
@@ -4288,8 +4306,9 @@ lily/melody-spanner.cc
 lily/mensural-ligature-engraver.cc
 lily/mensural-ligature.cc
 lily/metronome-engraver.cc
+lily/midi-cc-announcer.cc
+lily/midi-cc-performer.cc
 lily/midi-chunk.cc
-lily/midi-control-function-performer.cc
 lily/midi-item.cc
 lily/midi-stream.cc
 lily/midi-walker.cc
index 55af69db64c438723a8daa42ef3073368cec9767..94fe93689c23ec10de56c3dcda88f0fcf435286e 100644 (file)
@@ -1,11 +1,6 @@
 AUTHORS - who did what for GNU LilyPond
 ***************************************
 
-Table of Contents
-*****************
-
-AUTHORS - who did what for GNU LilyPond
-
 
 This file lists authors of LilyPond, and what they wrote.  This list is
 alphabetically ordered by surname.  This file lists people that have
@@ -14,75 +9,73 @@ contributed over 100 lines of code or the equivalent.
 Current Development Team
 ------------------------
 
-   * Trevor Daniels: <t.daniels@treda.co.uk>, Assistant documentation
+    Trevor Daniels: <t.daniels@treda.co.uk>, Assistant documentation
      editor
 
-   * Colin Hall: Bug meister
+    Colin Hall: Bug meister
 
-   * Phil Holmes: <mail@philholmes.net> `http://www.philholmes.net'
+   • Phil Holmes: <mail@philholmes.net> <http://www.philholmes.net>
      Build unentangler, Bug squad member
 
-   * David Kastrup: <dak@gnu.org>, hard core developer, user and
+    David Kastrup: <dak@gnu.org>, hard core developer, user and
      programming interfaces, bug squashing and swamp drainage.
 
-   * Werner Lemberg, <wl@gnu.org>, Fonts, bug squasher
+    Werner Lemberg, <wl@gnu.org>, Fonts, bug squasher
 
-   * Han-Wen Nienhuys: <hanwen@xs4all.nl>,
-     `http://www.xs4all.nl/~hanwen/', Main author
+    Han-Wen Nienhuys: <hanwen@xs4all.nl>,
+     <http://www.xs4all.nl/~hanwen/>, Main author
 
-   * Jan Nieuwenhuizen: <janneke@gnu.org>, `http://JoyofSource.com',
-     `http://AvatarAcademy.nl', Main author
+   • Jan Nieuwenhuizen: <janneke@gnu.org>, <http://JoyofSource.com>,
+     <http://AvatarAcademy.nl>, Main author
 
-   * Mark Polesky: Documentation, Code cleanup
+    Mark Polesky: Documentation, Code cleanup
 
-   * Carl Sorensen: <c_sorensen@byu.edu>, Core developer
+    Carl Sorensen: <c_sorensen@byu.edu>, Core developer
 
-   * Francisco Vila: Translation Meister
-
-   * Janek Warchoł: <janek.lilypond@gmail.com>, Core developer
+   • Francisco Vila: Translation Meister
 
+   • Janek Warchoł: <janek.lilypond@gmail.com>, Core developer
 
 Previous Development Team
 -------------------------
 
-   * Mats Bengtsson: <mats.bengtsson@ee.kth.se>,
-     `https://www.kth.se/profile/matben/', Support guru
+    Mats Bengtsson: <mats.bengtsson@ee.kth.se>,
+     <https://www.kth.se/profile/matben/>, Support guru
 
-   * Bertrand Bordage: <bordage.bertrand@gmail.com>, Core developer,
+    Bertrand Bordage: <bordage.bertrand@gmail.com>, Core developer,
      font designer
 
-   * Ian Hulin: Core developer
+    Ian Hulin: Core developer
 
-   * Reinhold Kainhofer: <reinhold@kainhofer.com>,
-     `http://reinhold.kainhofer.com', Core developer, Music2xml wrangler
+    Reinhold Kainhofer: <reinhold@kainhofer.com>,
+     <http://reinhold.kainhofer.com>, Core developer, Music2xml wrangler
 
-   * Pedro Kroeger: Build meister
+    Pedro Kroeger: Build meister
 
-   * Jonathan Kulp: Assistant documentation editor
+    Jonathan Kulp: Assistant documentation editor
 
-   * Joe Neeman: Core developer
+    Joe Neeman: Core developer
 
-   * John Mandereau: <john.mandereau@free.fr>, Translation meister
+    John Mandereau: <john.mandereau@free.fr>, Translation meister
 
-   * Patrick McCarty: SVG guru, bug squad member, bug squasher, text
+    Patrick McCarty: SVG guru, bug squad member, bug squasher, text
      handling
 
-   * Graham Percival: `http://percival-music.ca', Bug meister, Grand
+   • Graham Percival: <http://percival-music.ca>, Bug meister, Grand
      Documentation Project leader
 
-   * Neil Puttock: Core developer
+    Neil Puttock: Core developer
 
-   * Jürgen Reuter: <reuter_j@web.de>, `http://www.juergen-reuter.de',
+   • Jürgen Reuter: <reuter_j@web.de>, <http://www.juergen-reuter.de>,
      Ancient notation
 
-   * Mike Solomon: <mike@mikesolomon.org>, Core developer, Frog meister
-
-   * Erik Sandberg: Bug meister
+   • Mike Solomon: <mike@mikesolomon.org>, Core developer, Frog meister
 
-   * Nicolas Sceaux: Core developer, Schemer extraordinaire
+   • Erik Sandberg: Bug meister
 
-   * Valentin Villenave: LSR editor and Bug squad member
+   • Nicolas Sceaux: Core developer, Schemer extraordinaire
 
+   • Valentin Villenave: LSR editor and Bug squad member
 
 Current Contributors
 --------------------
@@ -133,24 +126,23 @@ Programming
 ...........
 
 Erlend Aasland, Maximilian Albert, Aleksandr Andreev, Guido Amoruso,
-Sven Axelsson, Kristof Bastiaensen, Pál Benkő, Frédéric Bron,
-Juliusz Chroboczek, Peter Chubb, Angelo Contardi, Vicente Solsona Della,
-Hajo Dezelski, Michael Welsh Duggan, David Feuer, Bertalan Fodor,
-Richard Gay, Mathieu Giraud, Lisa Opus Goldstein, Torsten Hämmerle,
-Yuval Harel, Andrew Hawryluk, Christian Hitz, Karin Hoethker, Rutger
-Hofmann, Marc Hohl, Bernard Hurley, Yoshinobu Ishizaki, Chris Jackson,
-Felix Janda, David Jedlinsky, Heikki Junes, Michael Käppler, Thomas
-Klausner, Marek Klein, Michael Krause, Jean-Baptiste Lamy, Jonatan
-Liljedahl, Peter Lutek, Andrew Main, Kieren MacMillan, Hendrik Maryns,
-Thomas Morgan, David Nalesnik, Matthias Neeracher, Keith OHara, Justin
-Ohmie, Tatsuya Ono, Benkő Pál, Benjamin Peterson, Guy
-Gascoigne-Piggford, Anders Pilegaard, Henning Hraban Ramm, Nathan Reed,
-Julien Rioux, Johannes Rohrer, Stan Sanderson, Andreas Scherer,
-Johannes Schindelin, Patrick Schmidt, Boris Shingarov, Kim Shrier,
-Edward Sanford Sutton, Adam Spiers, David Svoboda, Heikki Taurainen,
-Piers Titus van der Torren, Owen Tuz, Sebastiano Vigna, Jan-Peter Voigt,
-Arno Waschk, John Williams, Andrew Wilson, Milan Zamazal, Rune Zedeler,
-Rodolfo Zitellini
+Sven Axelsson, Kristof Bastiaensen, Pál Benkő, Frédéric Bron, Juliusz
+Chroboczek, Peter Chubb, Angelo Contardi, Vicente Solsona Della, Hajo
+Dezelski, Michael Welsh Duggan, David Feuer, Bertalan Fodor, Richard
+Gay, Mathieu Giraud, Lisa Opus Goldstein, Torsten Hämmerle, Yuval Harel,
+Andrew Hawryluk, Christian Hitz, Karin Hoethker, Rutger Hofmann, Marc
+Hohl, Bernard Hurley, Yoshinobu Ishizaki, Chris Jackson, Felix Janda,
+David Jedlinsky, Heikki Junes, Michael Käppler, Thomas Klausner, Marek
+Klein, Michael Krause, Jean-Baptiste Lamy, Jonatan Liljedahl, Peter
+Lutek, Andrew Main, Kieren MacMillan, Hendrik Maryns, Thomas Morgan,
+David Nalesnik, Matthias Neeracher, Keith OHara, Justin Ohmie, Tatsuya
+Ono, Benkő Pál, Benjamin Peterson, Guy Gascoigne-Piggford, Anders
+Pilegaard, Henning Hraban Ramm, Nathan Reed, Julien Rioux, Johannes
+Rohrer, Stan Sanderson, Andreas Scherer, Johannes Schindelin, Patrick
+Schmidt, Boris Shingarov, Kim Shrier, Edward Sanford Sutton, Adam
+Spiers, David Svoboda, Heikki Taurainen, Piers Titus van der Torren,
+Owen Tuz, Sebastiano Vigna, Jan-Peter Voigt, Arno Waschk, John Williams,
+Andrew Wilson, Milan Zamazal, Rune Zedeler, Rodolfo Zitellini
 
 Font
 ....
@@ -186,6 +178,6 @@ Heikki Junes, Nicolas Klutchnikoff, Jean-Charles Malahieude, Adrian
 Mariano, Christian Mondrup, Tineke de Munnik, Steven Michael Murphy,
 Till Paala, François Pinard, Gauvain Pocentek, Till Rettig, Ludovic
 Sardain, Yoshiki Sawada, Thomas Scharkowski, Clytie Siddall, August S.
-Sigov, Roland Stigge, Risto Vääräniemi, Andrea Valle, Ralf
-Wildenhues, Olcay Yıldırım
+Sigov, Roland Stigge, Risto Vääräniemi, Andrea Valle, Ralf Wildenhues,
+Olcay Yıldırım
 
index 4ee987f7effc88dac065cc56aa024d2fadea27f6..d787c4ce8fd95f5a176399a361af42154144aef9 100644 (file)
@@ -33,7 +33,7 @@ Copyright @copyright{} 1999--2015 pels autors.
 @omfdescription Learning Manual of the LilyPond music engraving system
 @omftype program usage
 @omfcategory Applications|Publishing
-@omflanguage Spanish
+@omflanguage Catalan
 @end ignore
 
 @c Translators: Walter Garcia-Fontes
index 286ceba6f26abf61dd4afd120d61cb6086879943..877efd1ba8142bf2c464d52b63720f35025e1324 100644 (file)
@@ -102,8 +102,7 @@ g1 | e1 | c2. c'4 | g4 c g e | c4 r r2 |
 
 @seealso
 Referència de la notació:
-@ruser{Bar and bar number checks}.
-
+@rusernamed{Bar and bar number checks, Comprovacions de compàs i de número de compàs}.
 
 @node Alteracions accidentals i armadures
 @subsection Alteracions accidentals i armadures
@@ -153,7 +152,7 @@ bemol} es fa afegint @code{isis} o @code{eses}.  Aquesta sintaxi
 deriva de les convencions de nomenclatura de les notes en les
 llengües nòrdiques i germàniques com l'alemany i l'holandès.  Per
 utilitzar altres noms per a les @notation{alteracions
-accidentals}, vegeu @ruser{Note names in other languages}.
+accidentals}, vegeu @ruser{Noms de les notes en altres llengües}.
 
 @lilypond[verbatim,quote]
 \relative { cis''4 ees fisis, aeses }
@@ -263,16 +262,16 @@ Posar totes les alteracions de forma explícita pot requerir una
 mica més de treball d'escriure, però l'avantatge és que la
 @notation{transposició} és més fàcil, i les alteracions es poden
 imprimir seguint diverses convencions diferents.  Consulteu
-@ruser{Automatic accidentals} per veure exemples de
+@ruser{Alteracions accidentals automàtiques} per veure exemples de
 com es poden imprimir alteracions d'acord amb regles diferents.
 
 
 @seealso
 Referència de la notació:
-@ruser{Note names in other languages},
-@rusernamed{Accidentals,Alteracions accidentals},
-@ruser{Automatic accidentals},
-@ruser{Key signature}.
+@ruser{Noms de les notes en altres llengües},
+@ruser{Alteracions accidentals},
+@ruser{Alteracions accidentals automàtiques},
+@ruser{Armadura de la tonalitat}.
 
 @node Lligadures d'unió i d'expressió
 @subsection Lligadures d'unió i d'expressió
@@ -478,8 +477,8 @@ la instrucció @code{\!}:
 
 @seealso
 Referència de la notació:
-@ruser{Articulations and ornamentations},
-@ruser{Fingering instructions},
+@rusernamed{Articulations and ornamentations,Articulacions i ornamentacions},
+@rusernamed{Fingering instructions,Instruccions de digitació},
 @rusernamed{Dynamics,Matisos dinàmics}.
 
 @node Addició de text
@@ -511,7 +510,7 @@ a'2_\markup {
 
 @seealso
 Referència de la notació:
-@ruser{Writing text}.
+@rusernamed{Writing text,Escriptura de text}.
 
 
 @node Barres automàtiques i manuals
@@ -566,8 +565,8 @@ cop.
 
 @seealso
 Referència de la notació:
-@ruser{Automatic beams},
-@ruser{Manual beams}.
+@rusernamed{Automatic beams,Barrat automàtic},
+@rusernamed{Manual beams,Barrat manual}.
 
 @node Instruccions rítmiques avançades
 @subsection Instruccions rítmiques avançades
@@ -667,7 +666,7 @@ expressió musical amb la paraula clau @code{\appoggiatura} o
 Referència de la notació:
 @rusernamed{Grace notes,Notes d'adorn},
 @rusernamed{Tuplets,Grups especials},
-@ruser{Upbeats}.
+@rusernamed{Upbeats,Anacrusis}.
 
 @node Diverses notes a la vegada
 @section Diverses notes a la vegada
@@ -948,8 +947,8 @@ també controla l'abast de les línies divisòries.
 
 @seealso
 Referència de la notació:
-@ruser{Keyboard and other multi-staff instruments},
-@ruser{Displaying staves}.
+@rusernamed{Keyboard and other multi-staff instruments,Teclat i altres instruments de pentagrama múltiple},
+@rusernamed{Displaying staves,Visualització dels pentagrames}.
 
 @node Combinar notes per formar acords
 @subsection Combinar notes per formar acords
@@ -994,7 +993,7 @@ per fora dels angles.
 
 @seealso
 Referència de la notació:
-@ruser{Chorded notes}.
+@rusernamed{Chorded notes,Notes en acord}.
 
 
 @node Polifonia a un sol pentagrama
@@ -1024,7 +1023,7 @@ Manual d'aprenentatge:
 @ref{Les veus contenen música}.
 
 Referència de la notació:
-@ruser{Simultaneous notes}.
+@rusernamed{Simultaneous notes,Notes simultànies}.
 
 
 @node Cançons
@@ -1276,7 +1275,7 @@ del @notation{Barber de Sevilla} de Rossini, on la síl·laba
 
 @seealso
 Referència de la notació:
-@ruser{Vocal music}.
+@rusernamed{Vocal music,Música vocal}.
 
 
 @node Lletra en diversos pentagrames
@@ -1321,7 +1320,7 @@ variables}.
 
 @seealso
 Referència de la notació:
-@ruser{Vocal music}.
+@rusernamed{Vocal music,Música vocal}.
 
 
 @node Retocs finals
@@ -1470,7 +1469,7 @@ es troba fora de l'expressió musical principal: el bloc
 
 Quan es processa el fitxer, el títol i l'autor s'imprimeixen a
 sobre de la música.  Podeu obtenir més informació sobre els títols
-a @ruser{Creating titles headers and footers}.
+a @rusernamed{Creating titles headers and footers,Creació de capçaleres de títol i peus de pàgina}.
 
 @node Noms de nota absoluts
 @subsection Noms de nota absoluts
@@ -1581,17 +1580,17 @@ relativa:
 
 Després d'acabar el tutorial, potser hauríeu de provar a escriure
 una o dues peces.  Comenceu amb una de les plantilles que
-apareixen a @rlearningnamed{Templates,Plantilles} i afegiu algunes
+apareixen a @ref{Plantilles} i afegiu algunes
 notes.  Si necessiteu un tipus de notació que no ha estat tractat
 en aquest tutorial, doneu una ullada a la Referència de Notació,
-començant per @ruser{Musical notation}.  Si voleu escriure música
+començant per @ruser{Notació musical}.  Si voleu escriure música
 per a un conjunt instrumental que no estigui cobert per cap
 plantilla, consulteu @ref{Extensió de les plantilles}.
 
 Un cop que heu escrit algunes peces curtes, llegiu la resta del
 Manual d'aprenentatge (capítols 3 al 5).  Per suposat no passa res
 per llegir-lo ara mateix!  La resta del Manual d'Aprenentatge,
-però, dona per suposat que teniu familiaritat amb l'entrada del
+però, dóna per suposat que teniu familiaritat amb l'entrada del
 LilyPond. Podeu saltar-vos aquests capítols ara i tornar a ells
 quan hagueu adquirit més experiència.
 
index 53bc51d22d24eebff6d31c9233178ff20acefb3b..738b36288825500bf753a982f38c9f4f46c27c9f 100644 (file)
@@ -38,7 +38,7 @@ tota aquesta flexibilitat pot fer que les coses es tornin confuses
 per als nous usuaris.  Aquesta secció us explicarà part d'aquesta
 estructura, però pot obviar certs detalls per simplificar.  Per
 veure una descripció més completa del format d'entrada, consulteu
-@ruser{File structure}.
+@rusernamed{File structure,Estructura dels fitxers}.
 
 
 @menu
@@ -190,8 +190,8 @@ Dues instruccions més que no hem vist són @code{\layout @{ @}}
 i @code{\midi @{ @}}.  Si apareixen tal i com es mostren aquí, fan
 que el LilyPond produeixi una sortida impresa i una sortida MIDI,
 respectivament.  Es descriuen amb tot detall al manual de
-Referència de la notació, a @ruser{Score layout} i a
-@ruser{Creating MIDI files}.
+Referència de la notació, a @rusernamed{Score layout,Disposició de la partitura}
+i a  @ruser{Creating MIDI output,Creació de sortida MIDI}.
 
 @cindex partitures, diverses
 @cindex book, bloc implícit
@@ -227,7 +227,8 @@ bloc @code{\score} (que per això està dins d'un bloc
 @code{\book}, ja sigui explícit o implícitament) afecta als blocs
 @code{\score} que estan dins d'aquest @code{\book}.
 
-Per veure més detalls, consulteu @ruser{Multiple scores in a book}.
+Per veure més detalls, consulteu
+@rusernamed{Multiple scores in a book,Partitures múltiples en un llibre}.
 
 @cindex variables
 
@@ -256,7 +257,7 @@ caràcters alfabètics i sigui diferent a qualsevol dels noms
 d'instrucció del LilyPond.  Per veure més detalls, consulteu
 @ref{Estalvi de tecleig mitjançant variables i funcions}.  Les
 limitacions exactes que afecten els noms de variable es detallen a
-@ruser{File structure}.
+@rusernamed{File structure,Estructura dels fitxers}.
 
 
 @seealso
@@ -417,7 +418,7 @@ la mateixa posició horitzontal).
 
 @seealso
 Referència de la notació:
-@ruser{Estructura d'una partitura}.
+@rusernamed{Structure of a score,Estructura d'una partitura}.
 
 
 @node Niuat d'expressions musicals
@@ -488,8 +489,7 @@ pentagrama nou s'ha de col·locar per sobre del pentagrama anomenat
 Els fragments d'ossia s'escriuen sovint sense clau i sense
 indicació de compàs, i generalment amb una lletra més petita.  Per
 fer això caldrien més ordres que encara no s'han vist.  Vegeu
-@rlearningnamed{Size of objects,Mida dels objectes} i
-@ruser{Ossia staves}.
+@ref{Mida dels objectes} i @rusernamed{Ossia staves,Pentagrames d'Ossia}.
 
 @node Quant a la impossibilitat de niuar claudàtors i lligadures
 @subsection Quant a la impossibilitat de niuar claudàtors i lligadures
@@ -788,10 +788,8 @@ aspes, i la veu quatre (que no es fa servir aquí) a aspes color
 magenta.  @code{\voiceNeutralStyle} (que tampoc no es fa servir
 aquí) retorna tot a l'estil predeterminat.  Veurem més endavant
 com l'usuari pot crear instruccions com aquestes.  Vegeu
-@rlearningnamed{Visibility and color of objects,Visibilitat i
-color dels objectes} i
-@rlearningnamed{Using variables for layout adjustments,Ús de
-variables per als ajustos de disposició}.
+@ref{Visibilitat i color dels objectes} i
+@ref{Ús de variables per als ajustaments de disposició}.
 
 @cindex polifonia i mode relatiu
 @cindex relatiu, mode, polifonia i
@@ -965,15 +963,14 @@ d'ajustar la col·locació horitzontal de les notes.  Encara no
 estem preparats per veure com es corregeix això, per la qual cosa
 deixarem el problema per a una secció posterior (vegeu la
 propietat @code{force-hshift} a
-@rlearningnamed{Fixing overlapping notation,Arreglar notació amb
-superposicions}).
+@ref{Ajustament de la notació amb superposicions}).
 
 @warning{No es poden crear lletres ni objectes d'extensió
 (com ara lligadures, reguladors, etc.) @q{entre} veus diferents.}
 
 @seealso
 Referència de la notació:
-@ruser{Multiple voices}.
+@ruser{Multiple voices,Veus mútiples}.
 
 
 @node Veus explícites
@@ -1204,7 +1201,7 @@ quatre es desplacen cap a l'esquerra.
 @code{\shiftOnn} i @code{\shiftOnnn} defineixen nivells
 addicionals de desplaçament que es poden especificar temporalment
 per resoldre col·lisions en situacions complexes (vegeu
-@rlearningnamed{Real music example,Exemples reals de música}).
+@ref{Exemple real de música}).
 
 Una columna de notes pot contenir sols una nota (o acord) d'una
 veu amb les pliques cap amunt i una nota (o acord) d'una veu amb
@@ -1216,10 +1213,10 @@ massa columnes de notes}.
 
 @seealso
 Manual d'aprenentatge:
-@rlearningnamed{Moving objects,Moure objectes}.
+@ref{Moviment d'objectes}.
 
 Referència de la notació:
-@ruser{Multiple voices}.
+@rusernamed{Multiple voices,Veus múltiples}.
 
 
 @node Veus i música vocal
@@ -1389,7 +1386,7 @@ VerseFour  =
 
 @seealso
 Referència de la notació:
-@ruser{Vocal music}.
+@rusernamed{Vocal music,Música vocal}.
 
 
 @node Contextos i gravadors
@@ -1607,7 +1604,7 @@ secció sobre la lletra, a @ref{Veus i música vocal}.
 
 @seealso
 Referència de la notació:
-@ruser{Creating contexts}.
+@rusernamed{Creating and referencing contexts,Creació i referència de contextos}.
 
 
 @node Explicació dels gravadors
@@ -2026,10 +2023,10 @@ enunciats dins d'un bloc @code{\with}, i mitjançant instruccions
 
 @seealso
 Referència de la notació:
-@ruser{Changing context default settings}.
+@rusernamed{Changing context default settings,Canvi de la configuració dels contextos predeterminats}.
 @c FIXME
 @c uncomment when backslash-node-name issue is resolved -pm
-@ruser{The set command}
+@rusernamed{The set command,L'ordre set}
 
 Referència de funcionament intern:
 @rinternals{Contexts},
@@ -2197,8 +2194,8 @@ particular incloent-hi la instrucció @code{\set} dins d'un bloc
 
 @seealso
 Referència de la notació:
-@ruser{Modifying context plug-ins},
-@ruser{Changing context default settings}.
+@rusernamed{Modifying context plug-ins,Modificactió dels connectors de context},
+@rusernamed{Changing context default settings,Canvi de la configuració dels contextos predeterminats}.
 
 @knownissues
 Els gravadors @code{Stem_engraver} i @code{Beam_engraver}
@@ -2215,7 +2212,7 @@ Heu llegit el tutorial i ara sabeu escriure música.  Però, com
 podeu posar els pentagrames que voleu?  Les plantilles estan molt
 bé, però què passa si voleu alguna cosa que està en cap plantilla?
 Bé, podeu trobar muntanyes de plantilles (vegeu
-@rlearningnamed{Templates,Plantilles})
+@ref{Plantilles})
 que us poden servir com a punt de partida.  Però i si voleu
 quelcom que no està contemplat aquí? Continueu llegint.
 
@@ -2416,7 +2413,7 @@ musicaVioloncel = \relative {
 @seealso
 Les plantilles d'inici es poden trobar a l'apèndix
 @q{Plantilles}, vegeu
-@rlearningnamed{Single staff templates,Plantilles de pentagrama únic}.
+@ref{Plantilles de pentagrama únic}.
 
 @node Partitura vocal a quatre veus SATB
 @subsection Partitura vocal a quatre veus SATB
@@ -2529,8 +2526,7 @@ lower = \relative {
 
 Cap de les plantilles proporciona aquesta disposició amb
 exactitud.  La més semblant és
-@rlearningnamed{SATB vocal score and automatic piano reduction,
-Partitura vocal SATB i reducció per a piano automàtica},
+@ref{Partitura vocal SATB i reducció per a piano automàtica},
 però necessitem canviar la disposició i afegir un acompanyament de
 piano que no estigui derivat automàticament de les parts vocals.
 Les variables que contenen la música i la lletra de les parts
@@ -2949,7 +2945,8 @@ l'@q{objecte gràfic} @code{VerticalAxisGroup} (els objectes gràfics
 reben en general el nom de @q{grob}s a la documentació del
 LilyPond); no us preocupeu de moment dels detalls, ja que això
 s'explica més tard de forma exhaustiva.  Els més curiosos podeu
-donar una ullada a @ruser{Overview of modifying properties}.
+donar una ullada a
+@rusernamed{Overview of modifying properties,Panorama de la modificació de propietats}.
 En aquest cas volem modificar solament la sub-propietat
 @code{stretchability}.  Un altre cop, els curiosos trobareu els
 valors predeterminats per a la propietat staff-staff-spacing al
@@ -3184,7 +3181,7 @@ La utilització d'identificadors també és una bona forma de reduir
 el treball si la sintaxis d'entrada del LilyPonod canvia (vegeu
 @rprogram{Actualització de fitxers amb convert-ly}).  Si teniu una sola
 definició (com ara @code{\dolce}) per a tots els fitxers (vegeu
-@rlearningnamed{Style sheets,Fulls d'estil}), i després la sintaxis es
+@ref{Fulls d'estil}), i després la sintaxis es
 modifica, sols haurà d'actualitzar la seva definició @code{\dolce}
 única, enlloc de haver de fer canvis a cadascú dels fitxers
 @file{.ly}.
index 32e37b6b891553dda009a768422add8fb07b5116..bfa1adeef07d534d6262c19453cd259cfb30b6d3 100644 (file)
@@ -16,7 +16,7 @@
 @chapter Tutorial
 @translationof Tutorial
 
-Aquest capítol ofereix una introducció bàsica al treball amb el Lilypond.
+Aquest capítol ofereix una introducció bàsica al treball amb el LilyPond.
 
 @menu
 * Compilació d'un fitxer::
@@ -78,7 +78,7 @@ El resultat té aquest aspecte:
 @end lilypond
 
 @warning{la música i la lletra escrita al codi d'entrada del
-Lilypond ha d'anar sempre entre @w{@strong{@{ claudàtors @}}}.
+LilyPond ha d'anar sempre entre @w{@strong{@{ claudàtors @}}}.
 Els claudàtors haurien també d'estar rodejats per espais a no ser
 que es trobin al principi o al final d'una línia, per evitar
 ambigüitats.  És possible que s'ometen en alguns exemples del
@@ -87,7 +87,7 @@ Per veure més informació sobre la presentació dels exemples del
 manual, consulteu
 @ref{Com llegir els manuals}.}
 
-A més, l'entrada del Lilypond és @strong{sensible a les majúscules}.
+A més, l'entrada del LilyPond és @strong{sensible a les majúscules}.
 @w{@samp{ @{ c d e @}}} és una entrada vàlida; @w{@samp{@{ C D E @}}} produeix
 un missatge d'error.
 
@@ -510,11 +510,11 @@ a l'hora:
 
 @seealso
 Referència de la notació:
-@rusernamed{Writing pitches,Escriptura de les notes},
+@ruser{Escriptura de les notes},
 @rusernamed{Writing rhythms,Escriptura dels ritmes},
 @rusernamed{Writing rests,Escriptura de silencis},
 @rusernamed{Time signature,Indicació de compàs},
-@rusernamed{Clef,Clau}.
+@ruser{Clau}.
 
 @node Treball sobre els fitxers d'entrada
 @subsection Treball sobre els fitxers d'entrada
@@ -687,8 +687,7 @@ La solució de problemes al LilyPond pot ser un desafiament per a
 les persones acostumades als interfícies gràfics, perquè és
 possible crear fitxers d'entrada invàlids.  Quan passa això, la
 millor manera d'identificar i resoldre el problema és aplicar un
-enfocament lògic.  A @rprogramnamed{Troubleshooting,
-Solució de problemes} es donen
+enfocament lògic.  A @rprogram{Solució de problemes} es donen
 algunes guies per ajudar-vos a aprendre a fer-lo.
 
 @node Alguns errors comuns
@@ -842,8 +841,7 @@ del manual d'Aprenentatge.
 
 @item
 @strong{Abans d'afrontar un projecte gran}: llegiu la secció
-@rprogramnamed{Suggestions for writing files,Suggeriments per
-escriure fitxers d'entrada del LilyPond} del manual d'utilització
-del programa.
+@rprogram{Suggeriments per escriure fitxers d'entrada}
+del manual d'utilització del programa.
 
 @end itemize
index 90fe3e351e4368665b9b17ddbf8f97d29bf8e26b..450f030b701925f0248bced0685a177f45a69246 100644 (file)
@@ -78,7 +78,7 @@ són fonamentals per comprendre i construir els ajustaments.
 @cindex objecte de disposició
 
 L'ajustament consisteix en modificar el funcionament i estructure
-interna del programa Lilypond, per la qual cosa en primer lloc
+interna del programa LilyPond, per la qual cosa en primer lloc
 introduirem alguns termes que es fan servir per descriure aquestes
 operacions i estructures internes.
 
@@ -269,7 +269,7 @@ bàsiques com ara números, cadenes de caràcters i llistes, es
 processen al @q{mode de l'Scheme}, que s'invoca mitjançant del
 prefix @samp{#} escrit abans del valor.  Tot i que els valors
 poden tenir a vegades una representació vàlida al mode de música
-del Lilypond, aquest manual utilitza sempre @samp{#} per a
+del LilyPond, aquest manual utilitza sempre @samp{#} per a
 l'escriptura, per coherència.  Per obtenir més informació sobre el
 mode de l'Scheme, consulteu
 @rextendnamed{LilyPond Scheme-Syntax,Sintaxi de l'Scheme del LilyPond}.
@@ -737,9 +737,9 @@ estàndard.  Navegueu per ells buscant una propietat que pogués
 controlar el gruix de les lligadures, i trobarà
 
 @example
-@code{thickness} (number)
-     @code{1.2}
-     Line thickness, generally measured in @code{line-thickness}
+thickness (number)
+     1.2
+     Line thickness, generally measured in line-thickness
 @end example
 
 Això promet ser una bona opció per canviar el gruix.  Ens diu que
@@ -2180,7 +2180,7 @@ l'ordre @code{\set fingeringOrientations}.  El format d'aquesta
 ordre és:
 
 @example
-@code{\set fingeringOrientations = #'([up] [left/right] [down])}
+\set fingeringOrientations = #'([up] [left/right] [down])
 @end example
 
 @noindent
@@ -2882,7 +2882,7 @@ del @code{VerticalAxisGroup}.  Per veure més detalls, consulteu
 @menu
 * Moviment d'objectes::
 * Ajustament de la notació amb superposicions::
-* Exemples reals de música::
+* Exemple real de música::
 @end menu
 
 @node Moviment d'objectes
@@ -3574,8 +3574,8 @@ Presentem a continuació el resultat final:
 @end lilypond
 
 
-@node Exemples reals de música
-@subsection Exemples reals de música
+@node Exemple real de música
+@subsection Exemple real de música
 @translationof Real music example
 
 Finalitzarem aquesta secció sobre els ajustaments mostrant els
@@ -4282,11 +4282,11 @@ alternativa, utilitzar les ordres @code{\override} y
 @code{\revert}?
 
 @example
-@code{\override Lyrics.LyricText.font-shape = #'italic}
-@code{\override Lyrics.LyricText.font-series = #'bold}
+\override Lyrics.LyricText.font-shape = #'italic
+\override Lyrics.LyricText.font-series = #'bold
 
-@code{\revert Lyrics.LyricText.font-shape}
-@code{\revert Lyrics.LyricText.font-series}
+\revert Lyrics.LyricText.font-shape
+\revert Lyrics.LyricText.font-series
 @end example
 
 Aquestes ordres també serien extremadament tedioses d'escriure si
@@ -4665,7 +4665,7 @@ fitxers de música amb un @code{\include "../global.ily"}, que conté
 @translationof Other sources of information
 
 La documentació del manual de Referència de Funcionament Intern
-conté muntanyes d'informació sobre el Lilypond, però es pot
+conté muntanyes d'informació sobre el LilyPond, però es pot
 obtenir més informació encara llegint els fitxers interns del
 LilyPond.  Per donar-los una ullada, en primer lloc heu de buscar
 la carpeta corresponent al seu sistema.  La ubicació d'aquesta
@@ -4713,7 +4713,7 @@ compilat a partir de la font
 Dirigiu-vos a @file{@var{PREFIX}/share/lilypond/@var{X.Y.Z}/}, on
 @var{PREFIX} s'ha establert pel vostre administrador de paquets o
 guió @code{configure}, i @var{X.Y.Z} es el número de la versió del
-Lilypond.
+LilyPond.
 
 @smallspace
 
diff --git a/Documentation/ca/notation.tely b/Documentation/ca/notation.tely
new file mode 100644 (file)
index 0000000..90f9207
--- /dev/null
@@ -0,0 +1,121 @@
+\input texinfo @c -*- coding: utf-8; mode: texinfo; documentlanguage: ca -*-
+@ignore
+    Translation of GIT committish: 47db9a3883d726ca53e2133a3b2298f78dd6a32e
+
+    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
+
+@setfilename lilypond.info
+@settitle Referència de la notació del GNU LilyPond
+@documentencoding UTF-8
+@documentlanguage ca
+@afourpaper
+
+@macro manualIntro
+Aquest manual ofereix una referència per a tota la notació musical que
+es pot produir amb el LilyPond versió @version{}.  S'entén que el
+lector està familiaritzat amb el material que hi ha a
+@rlearningnamed{Top, Manual d'aprenentatge}.
+@end macro
+
+@c `Notation Reference' was born 1998-08-14 with this commit:
+@c release: 1.0.2
+@c author: Han-Wen Nienhuys
+@c commit: a3a44f9f3c581b6824b3a65f9039656693e09bbf
+@c   file: Documentation/tex/refman.yo
+
+@macro copyrightDeclare
+Copyright @copyright{} 1999--2015 pels autors.
+@end macro
+
+
+@set FDL
+@include macros.itexi
+
+@c don't remove this comment.
+@ignore
+@omfcreator Han-Wen Nienhuys, Jan Nieuwenhuizen and Graham Percival
+@omfdescription Notation Reference of the LilyPond music engraving system
+@omftype user manual
+@omfcategory Applications|Publishing
+@omflanguage Catalan
+@end ignore
+
+@c Translators: Walter Garcia-Fontes
+
+@lilyTitlePage{Referència de la notació}
+
+
+@ifnottex
+
+@menu
+* Notació musical::                 Notació que es fa servir a gairebé tots els projectes.
+* Specialist notation::          Notació que sols s'usa per a fins específics.
+* General input and output::      Informació general sobre l'entrada i la sortida del LilyPond.
+* Spacing issues::             Presentació del resultat en paper.
+* Changing defaults::   Ajust fi del resultat
+
+Annexos
+
+* Notation manual tables:: Taules i quadres
+* Cheat sheet::       Resum de la sintaxi del LilyPond
+* GNU Free Documentation License::  Llicència d'aquest document
+* Índex d'ordres del LilyPond::
+* Índex del LilyPond::
+@end menu
+
+@docMain
+@end ifnottex
+
+@contents
+
+@allowcodebreaks false
+
+@include notation/notation.itely
+@include notation/specialist.itely
+
+@include notation/input.itely
+@include notation/spacing.itely
+
+@include notation/changing-defaults.itely
+
+
+@include notation/notation-appendices.itely
+@include notation/cheatsheet.itely
+
+
+@include fdl.itexi
+
+
+@node Índex d'ordres del LilyPond
+@appendix Índex d'ordres del LilyPond
+@translationof LilyPond command index
+
+Aquest índex fa una relació de totes les ordres i paraules clau
+del LilyPond, amb enllaços a aquelles seccions del manual que
+descriuen o s'ocupen del seu ús.  Cadascú d'aquests enllaços
+consta de dues parts.  La primera part apunta a la situació exacta
+del manual en el qual apareix l'ordre o paraula clau; la segona
+part apunta al començament de la secció corresponent del manual en
+la qual apareix l'ordre o paraula clau.
+
+@printindex ky
+
+@node Índex del LilyPond
+@appendix Índex del LilyPond
+@translationof LilyPond index
+
+A més de totes les ordres i paraules clau del LilyPond, aquest
+índex és una llista de termes musicals i les paraules que tenen
+relació amb cada u d'ells, amb enllaços a aquelles seccions del
+manual que descriuen o s'ocupen d'aquest terme.  Cada un dels
+enllaços consta de dues parts.  La primera part apunta a la
+situació exacta del manual en el qual apareix el terme; la segona
+part apunta al començament de la secció corresponent del manual en
+la qual es discuteix aquest terme.
+
+@printindex cp
+
+@bye
diff --git a/Documentation/ca/notation/notation.itely b/Documentation/ca/notation/notation.itely
new file mode 100644 (file)
index 0000000..4369342
--- /dev/null
@@ -0,0 +1,37 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: ca -*-
+@ignore
+    Translation of GIT committish: 26a079ca2393d053315ef8dbef626c897dc9645a
+
+    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.16.0"
+
+@node Notació musical
+@chapter Notació musical
+@translationof Musical notation
+
+Aquest capítol explica com crear notació musical.
+
+@menu
+* Altures::                 Escriptura i presentació de les duracions de les notes.
+* Rhythms::                  Escriptura i presentació de les duracions de les notes.
+* Expressive marks::        Addició d'expressió a les notes.
+* Repeats::                 Repeticions de música.
+* Simultaneous notes::      Més d'una nota a l'hora.
+* Staff notation:: Imprimir pentagrames.
+* Editorial annotations::   Notació especial per augmentar la llegibilitat.
+* Text::                    Addicció de text a les partitures.
+@end menu
+
+@include notation/pitches.itely
+@include notation/rhythms.itely
+@include notation/expressive.itely
+@include notation/repeats.itely
+@include notation/simultaneous.itely
+@include notation/staff.itely
+@include notation/editorial.itely
+@include notation/text.itely
+
diff --git a/Documentation/ca/notation/pitches.itely b/Documentation/ca/notation/pitches.itely
new file mode 100644 (file)
index 0000000..ab0d8ad
--- /dev/null
@@ -0,0 +1,3300 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: ca -*-
+@ignore
+    Translation of GIT committish: e45059ae37b240ce52639ad5c49110b510a89481
+
+    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.19.22"
+
+
+@node Altures
+@section Altures
+@translationof Pitches
+
+@lilypondfile[quote]{pitches-headword.ly}
+
+A aquesta secció es discuteix com especificar l'altura de les
+notes. Aquest procés es composa de tres fases: entrada,
+modificació i sortida.
+
+@menu
+* Escriptura de notes::
+* Modificació de diverses notes a l'hora::
+* Impressió de les altures::
+* Cap de les notes::
+@end menu
+
+
+@node Escriptura de notes
+@subsection Escriptura de notes
+@translationof Writing pitches
+
+A aquesta secció es descriu la manera d'introduir l'altura de les
+notes.  Hi ha dues formes diferents de col·locar les notes a la
+seva octava corresponent: el mode absolut i el relatiu.  A gairebé
+totes les ocasions, serà més pràctic el mode relatiu.
+
+@menu
+* Escriptura d'octava absoluta::
+* Escriptura d'octava relativa::
+* Alteracions accidentals::
+* Noms de les notes en altres llengües::
+@end menu
+
+
+@node Escriptura d'octava absoluta
+@unnumberedsubsubsec Escriptura d'octava absoluta
+@translationof Absolute octave entry
+
+@cindex noms de les notes
+@cindex altures
+@cindex absoluta
+@cindex absoluta, especificació, de l'octava
+@cindex octava, especificació absoluta
+@cindex absoluta, introducció, de l'octava
+@cindex octava, introducció absoluta
+
+El nom d'una nota s'especifica usant les lletres minúscules de
+l'@code{a} a la @code{g}.  Les notes els noms dels quals van des
+de la @code{c} fins la @code{b} s'imprimeixen a l'octava inferior
+al Do central.
+
+@c don't use c' here.
+@lilypond[verbatim,quote]
+{
+  \clef bass
+  c4 d e f
+  g4 a b c
+  d4 e f g
+}
+@end lilypond
+
+@cindex octava, marca de canvi de
+
+@funindex '
+@funindex ,
+
+Es poden especificar d'altres octaves mitjançant una cometa simple
+quote@tie{}(@code{'}) o una coma@tie{}(@code{,}) .
+Cada@tie{}@code{'} eleva l'altura en una octava;
+cada@tie{}@code{,} baixa l'altura una octava.
+
+@lilypond[verbatim,quote]
+{
+  \clef treble
+  c'4 e' g' c''
+  c'4 g b c'
+  \clef bass
+  c,4 e, g, c
+  c,4 g,, b,, c,
+}
+@end lilypond
+
+@funindex \fixed
+Les marques d'octava comunes es poden escriure una sola vegada
+sobre una nota de referència si es fa servir @code{\fixed} abans
+de la música.  A les notes dins de @code{\fixed} sols els calen
+les marques d'apòstrof @code{'} o de coma @tie{}@code{,} quan
+estan per sobre o per sota de l'octava de la nota de referència.
+
+@lilypond[verbatim,quote]
+{
+  \fixed c' {
+    \clef treble
+    c4 e g c'
+    c4 g, b, c
+  }
+  \clef bass
+  \fixed c, {
+    c4 e g c'
+    c4 g, b, c
+  }
+}
+@end lilypond
+
+L'altura de les notes de l'expressió musical que segueix a
+@code{\fixed} no resulta afectada per un @code{\relative} que
+l'envolta, que s'estudia a continuació.
+
+@seealso
+Glossari musical:
+@rglos{Pitch names}.
+
+Fragments de codi:
+@rlsrnamed{Pitches,Altures}.
+
+
+@node Escriptura d'octava relativa
+@unnumberedsubsubsec Escriptura d'octava relativa
+@translationof Relative octave entry
+
+@cindex relatiu
+@cindex relatives, especificació d'octaves
+@cindex octava, introducció relativa
+@cindex relativa, especificació de l'octava
+@cindex octava, especificació relativa
+
+@funindex \relative
+
+L'entrada d'octava absoluta requereix que s'especifiqui l'octava
+per a totes i cadascuna de les notes.  En contrast amb això, el
+mode d'entrada d'octava relativa especifica cada octava en relació
+amb la nota anterior: si es canvia l'octava d'una nota això
+afectarà a totes les notes següents.
+
+El mode relatiu de notes s'ha d'introduir de forma explícita usant
+l'ordre @code{\relative}:
+
+@example
+\relative @var{altura_inicial} @var{expressió_musical}
+@end example
+
+En el mode relatiu, se suposa que cada nota es troba el més a prop
+possible de la nota anterior.  Això significa que l'octava d'una
+nota que està dins de @code{@var{expresión_musical}} es calcula
+com segueix:
+
+@itemize
+@item
+Si no s'usa cap marca de canvi d'octava en una nota, la seva
+octava es calcula de forma que l'interval que formi amb la nota
+anterior sigui menor d'una quinta.  Aquest interval es determina
+sense considerar les alteracions.
+
+@item
+Es pot afegir una marca de canvi d'octava@tie{}@code{'}
+o@tie{}@code{,} per elevar o baixar l'altura, respectivament, en
+una octava més en relació con l'altura calculada sense aquesta
+marca.
+
+@item
+Es poden usar diverses marques de canvi d'octava.  Per exemple,
+@code{''}@tie{}i @code{,,}@tie{} alteren l'altura en dues octaves.
+
+@item
+L'altura de la primera nota és relativa a
+@code{@var{altura_inicial}}.  @code{@var{altura_inicial}}
+s'especifica en mode d'octava absoluta.  Quines opcions tenen
+sentit?
+
+@table @asis
+@item @code{c} (Do), en qualsevol octava
+La identificació del Do central amb @code{c'} és quelcom força
+bàsica, per la qual cosa sol ser fàcil trobar octaves de
+@code{c}.  Si la nostra música comença amb @code{gis} (un Sol
+sostingut) per sobre de @code{c'''}, hauríem d'escriure quelcom
+com @code{\relative @{ gis''' @dots{}  @}}
+
+@item una nota que està una o dues octaves de la primera nota
+Escriure @code{\relative @{ gis''' @dots{} @}} fa que sigui fàcil
+determinar l'altura absoluta de la primera nota de dins.
+
+@item cap altura d'inici explícita
+La forma @code{\relative @{ gis''' @dots{} @}} serveix com una
+versió més compacta de l'opció anterior: la primera nota de dins
+s'escriu ella mateixa en altura absoluta (això resulta ser
+equivalent a escollir @code{f} (Fa) como l'altura de referència).
+@end table
+
+La documentació sol utilitzar aquesta última opció.
+@end itemize
+
+Aquí podem ver el mode relatiu en acció:
+
+@lilypond[verbatim,quote]
+\relative {
+  \clef bass
+  c d e f
+  g a b c
+  d e f g
+}
+@end lilypond
+
+Les marques de canvi d'octava s'utilitzen per a intervals majors
+de la quarta:
+
+@lilypond[verbatim,quote]
+\relative {
+  c'' g c f,
+  c' a, e'' c
+}
+@end lilypond
+
+Una sèrie de notes sense cap marca d'octava pot, malgrat tot,
+abastar intervals molt grans:
+
+@lilypond[verbatim,quote]
+\relative {
+  c f b e
+  a d g c
+}
+@end lilypond
+
+Quan hi ha uns blocs @code{\relative} niuats dins d'altres, el bloc
+@code{\relative} més intern comença amb la seva pròpia nota de
+referència independentment del @code{\relative} exterior.
+
+@lilypond[verbatim,quote]
+\relative {
+  c' d e f
+  \relative {
+    c'' d e f
+  }
+}
+@end lilypond
+
+@code{\relative} no té efecte sobre els blocs
+@code{\chordmode}.
+
+@lilypond[verbatim,quote]
+\new Staff {
+  \relative c''' {
+    \chordmode { c1 }
+  }
+  \chordmode { c1 }
+}
+@end lilypond
+
+@code{\relative} no es permet dins des bloques
+@code{\chordmode}.
+
+La música que està dins d'un bloc @code{\transpose} és absoluta, a
+no ser que s'inclogui una ordre @code{\relative}.
+
+@lilypond[verbatim,quote]
+\relative {
+  d' e
+  \transpose f g {
+    d e
+    \relative {
+      d' e
+    }
+  }
+}
+@end lilypond
+
+@cindex acords i introduccions relativa de l'octava
+@cindex relativa, introducció de l'octava, i acords
+
+Si l'element anterior és un acord, la primera nota de l'acord
+s'utilitza per determinar la primera nota del següent acord.  Dins
+dels acords, la següent nota sempre està en relació a l'anterior.
+
+@lilypond[verbatim,quote]
+\relative {
+  c'
+  <c e g>
+  <c' e g'>
+  <c, e, g''>
+}
+@end lilypond
+
+Com es va explicar més a dalt, l'octava de les notes es calcula
+solament a partir dels seus noms, sense tenir en compte cap
+alteració.  Per tant, un Mi doble sostingut després d'un Si
+s'escriurà més greu.  En altres paraules, es considera a la quarta
+doble augmentada un interval menor que la quinta doble disminuïda,
+independentment del número de semitons de cada un d'ells.
+
+@lilypond[verbatim,quote]
+\relative {
+  c''2 fis
+  c2 ges
+  b2 eisis
+  b2 feses
+}
+@end lilypond
+
+
+@seealso
+Glossari musical:
+@rglos{fifth},
+@rglos{interval},
+@rglos{Pitch names}.
+
+Referència de la notació:
+@ref{Comprovació d'octava}.
+
+Fragments de codi:
+@rlsr{Pitches}.
+
+Referència de funcionament intern:
+@rinternals{RelativeOctaveMusic}.
+
+@cindex relatiu, mode, transposició i
+@cindex transposició i mode relatiu
+
+@funindex \transpose
+@funindex \chordmode
+@funindex \relative
+
+
+@node Alteracions accidentals
+@unnumberedsubsubsec Alteracions accidentals
+@translationof Accidentals
+
+@cindex accidental
+@cindex key signature
+@cindex clef
+
+@c duplicated in Key signature and Accidentals
+@warning{Les alteracions accidentals i les armadures són una
+freqüent causa de confusió per als nous usuaris.  Al LilyPond, els
+noms de les notes específiques les altures; l'armadura i la clau
+determinen de quin forma es presenten aquestes altures.  Una nota
+sense alteració com@tie{}@code{c} significa @q{Do natural}, i sí que
+l'afecten l'armadura ni la clau.  Per veure més informació, consulteu
+@rlearning{Alteracions accidentals i armadures}.}
+
+@cindex notes, noms holandesos de
+@cindex notes, noms predeterminats
+@cindex predeterminats, noms de nota
+@cindex sostingut
+@cindex bemoll
+@cindex doble sostingut
+@cindex sostingut, doble
+@cindex doble bemoll
+@cindex bemoll, doble
+@cindex becaire
+@cindex natural, nota
+
+S'escriu una nota @notation{sostinguda} afegint @code{is} al
+nom de la nota, i un @notation{bemoll} afegint @code{es}.
+Com és d'esperar, un @notation{doble sostingut} i un
+@notation{doble bemoll} s'obté afegint @code{isis} o
+@code{eses}.  Aquesta sintaxi deriva dels noms de les notes en
+holandès.  Per utilitzar altres noms per a les alteracions,
+consulteu @ref{Noms de les notes en altres llengües}.
+
+@lilypond[verbatim,quote,fragment]
+\relative c'' { ais1 aes aisis aeses }
+@end lilypond
+
+Una nota natural s'introdueix com el nom de la nota, sense més; no
+cal cap sufix.  S'imprimeix un símbol de becaire si cal per
+cancel·lar l'efecte d'una alteració o armadura anterior.
+
+@lilypond[verbatim,quote,fragment]
+\relative c'' { a4 aes a2 }
+@end lilypond
+
+@cindex quarts de to
+@cindex semi-bemolls
+@cindex semi-sostinguts
+
+Es poden escriure mig bemolls i els mig sostinguts; a continuació
+presentem una sèrie de DOs cada com més aguts:
+
+@lilypond[verbatim,quote,fragment]
+\relative c'' { ceseh1 ces ceh c cih cis cisih }
+@end lilypond
+
+@cindex alteració recordatòria
+@cindex alteració de precaució
+@cindex alteració con parèntesi
+@cindex recordatòria, alteració
+@cindex precaució, alteració de
+@cindex parèntesi, alteració amb
+
+@funindex ?
+@funindex !
+
+Normalment les alteracions accidentals s'imprimeixen
+automàticament, però també pot imprimir-les manualment.  Una
+alteració recordatòria es pot forçar afegint un signe de
+admiració@tie{}@code{!}  després de l'altura de la nota.  Es pot
+obtenir una alteració de precaució (o sigui, una alteració entre
+parèntesi) afegint el signe de interrogació@tie{}@code{?} després
+del nom de la nota.
+
+@lilypond[verbatim,quote,fragment]
+\relative c'' { cis cis cis! cis? c c c! c? }
+@end lilypond
+
+@cindex alteració en nota lligada
+@cindex lligadura, alteracions i
+
+Les alteracions sobre notes unides per lligadura sols
+s'imprimeixen al començament d'un sistema:
+
+@lilypond[verbatim,quote,fragment,ragged-right]
+\relative c'' {
+  cis1~ 1~
+  \break
+  cis
+}
+@end lilypond
+
+
+@snippets
+
+@lilypondfile[verbatim,quote,texidoc,doctitle,ragged-right]
+{hiding-accidentals-on-tied-notes-at-the-start-of-a-new-system.ly}
+
+@lilypondfile[verbatim,quote,texidoc,doctitle]
+{preventing-extra-naturals-from-being-automatically-added.ly}
+
+@seealso
+Glossari musical:
+@rglos{sharp},
+@rglos{flat},
+@rglos{double sharp},
+@rglos{double flat},
+@rglos{Pitch names},
+@rglos{quarter tone}.
+
+Manual d'aprenentatge:
+@rlearning{Alteracions accidentals i armadures}.
+
+Referència de la notació:
+@ref{Alteracions accidentals automàtiques},
+@rusernamed{Annotational accidentals (musica ficta), Alteracions de anotació (musica ficta)},
+@ref{Noms de les notes en altres llengües}.
+
+Fragments de codi:
+@rlsr{Pitches}.
+
+Referència de funcionament intern:
+@rinternals{Accidental_engraver},
+@rinternals{Accidental},
+@rinternals{AccidentalCautionary},
+@rinternals{accidental-interface}.
+
+@cindex alteració de quarts de to
+@cindex quarts de to, alteracions
+
+@knownissues
+No hi ha estàndards reconeguts àmpliament per denotar els bemolls
+de tres quarts, de manera que els símbols del LilyPond no
+s'ajusten a cap estàndard.
+
+@node Noms de les notes en altres llengües
+@unnumberedsubsubsec Noms de les notes en altes llengües
+@translationof Note names in other languages
+
+@cindex notes, noms de, en altres llengües
+@cindex altures, noms de, altres llengües
+@cindex llengua, noms de nota en altres
+@cindex llengua, altures en altres
+
+Hi ha conjunts predefinits de noms de notes i les seves
+alteracions per a algunes llengües a part de l'anglès.  La
+selecció de la llengua dels noms de les notes se sol fer al
+principi del fitxer: l'exemple següent està escrit utilitzant els
+noms italians de les notes:
+
+@lilypond[quote,verbatim]
+\language "italiano"
+
+\relative {
+  do' re mi sib
+}
+@end lilypond
+
+Les llengües disponibles i els noms de les notes que defineixen
+són els següents:
+
+@quotation
+@multitable {@code{nederlands}} {do re/re mi fa sol la sib si}
+@headitem Llengua
+  @tab Nom de les notes
+@item @code{nederlands}
+  @tab c d e f g a bes b
+@item @code{catalan}
+  @tab do re mi fa sol la sib si
+@item @code{deutsch}
+  @tab c d e f g a b h
+@item @code{english}
+  @tab c d e f g a bf b
+@item @code{espanol} o @code{español}
+  @tab do re mi fa sol la sib si
+@item @code{français}
+  @tab do ré/re mi fa sol la sib si
+@item @code{italiano}
+  @tab do re mi fa sol la sib si
+@item @code{norsk}
+  @tab c d e f g a b h
+@item @code{portugues}
+  @tab do re mi fa sol la sib si
+@item @code{suomi}
+  @tab c d e f g a b h
+@item @code{svenska}
+  @tab c d e f g a b h
+@item @code{vlaams}
+  @tab do re mi fa sol la sib si
+@end multitable
+@end quotation
+
+A més dels noms de les notes, els sufixos de les alteracions
+poden també variar depenent de la llengua:
+
+@quotation
+@multitable {@code{nederlands}} {-@code{s}/-@code{-sharp}} {-@code{ess}/-@code{es}} {-@code{ss}/-@code{x}/-@code{-sharpsharp}} {-@code{essess}/-@code{eses}}
+@headitem Llengua
+  @tab sostingut @tab bemoll @tab doble sostingut @tab doble bemoll
+@item @code{nederlands}
+  @tab -@code{is} @tab -@code{es} @tab -@code{isis} @tab -@code{eses}
+@item @code{catalan}
+  @tab -@code{d}/-@code{s} @tab -@code{b} @tab -@code{dd}/-@code{ss} @tab -@code{bb}
+@item @code{deutsch}
+  @tab -@code{is} @tab -@code{es} @tab -@code{isis} @tab -@code{eses}
+@item @code{english}
+  @tab -@code{s}/-@code{-sharp} @tab -@code{f}/-@code{-flat} @tab -@code{ss}/-@code{x}/-@code{-sharpsharp}
+    @tab -@code{ff}/-@code{-flatflat}
+@item @code{espanol} or @code{español}
+  @tab -@code{s} @tab -@code{b} @tab -@code{ss}/-@code{x} @tab -@code{bb}
+@item @code{français}
+  @tab -@code{d} @tab -@code{b} @tab -@code{dd}/-@code{x} @tab -@code{bb}
+@item @code{italiano}
+  @tab -@code{d} @tab -@code{b} @tab -@code{dd} @tab -@code{bb}
+@item @code{norsk}
+  @tab -@code{iss}/-@code{is} @tab -@code{ess}/-@code{es} @tab -@code{ississ}/-@code{isis}
+    @tab -@code{essess}/-@code{eses}
+@item @code{portugues}
+  @tab -@code{s} @tab -@code{b} @tab -@code{ss} @tab -@code{bb}
+@item @code{suomi}
+  @tab -@code{is} @tab -@code{es} @tab -@code{isis} @tab -@code{eses}
+@item @code{svenska}
+  @tab -@code{iss} @tab -@code{ess} @tab -@code{ississ} @tab -@code{essess}
+@item @code{vlaams}
+  @tab -@code{k} @tab -@code{b} @tab -@code{kk} @tab -@code{bb}
+@end multitable
+@end quotation
+
+A l'holandès, @code{aes} es contrau com @code{as}, però les dues
+formes s'accepten al LilyPond.  De forma semblant, s'accepten tant
+@code{es} com @code{ees}.  Això s'aplica també a
+@code{aeses}@tie{}/@tie{}@code{ases} i a
+@code{eeses}@tie{}/@tie{}@code{eses}.  A vegades es defineixen
+sols aquest noms abreujats als fitxers de llengua corresponents.
+
+@lilypond[verbatim,quote,fragment]
+\relative c'' { a2 as e es a ases e eses }
+@end lilypond
+
+@cindex microtons
+@cindex semi-sostingut
+@cindex semi-bemoll
+@cindex sesqui-sostingut
+@cindex sesqui-bemoll
+
+Algunes músiques utilitzen microtons les alteracions dels quals
+són fraccions d'un sostingut o bemoll @q{normals}.  La taula
+següent relaciona els noms de les notes per a les alteracions d'un
+quart de to en diferents llengües; aquí, els prefixos
+@notation{semi-} i @notation{sesqui-} respectivament signifiquen
+@q{mig} i @q{u i mig}.  Les llengües que no apareixen a aquesta
+taula no aporten encaran noms especials per a les notes.
+
+@quotation
+@multitable {@code{nederlands}} {@b{semi-sostingut}} {@b{semi-bemoll}} {@b{sesqui-sostingut}} {@b{sesqui-bemoll}}
+@headitem Llengua
+  @tab semi-sostingut @tab semi-bemoll @tab sesqui-sostingut @tab sesqui-bemoll
+
+@item @code{nederlands}
+  @tab -ih @tab -eh @tab -isih @tab -eseh
+@item @code{deutsch}
+  @tab -ih @tab -eh @tab -isih @tab -eseh
+@item @code{english}
+  @tab -qs @tab -qf @tab -tqs @tab -tqf
+@item @code{espanol} o @code{español}
+  @tab -cs @tab -cb @tab -tcs @tab -tcb
+@item @code{français}
+  @tab -sd @tab -sb @tab -dsd @tab -bsb
+@item @code{italiano}
+  @tab -sd @tab -sb @tab -dsd @tab -bsb
+@item @code{portugues}
+  @tab -sqt @tab -bqt @tab -stqt @tab -btqt
+@end multitable
+@end quotation
+
+Gairebé totes les llengües presentades aquí estan associades
+comunament amb la música clàssica occidental, també coneguda com
+@notation{Període de la pràctica comuna}.  Malgrat això, també
+estan contemplades les altures i els sistemes d'afinació
+alternatius: vegeu
+@rusernamed{Common notation for non-Western music,Notació comuna per a músiques no occidentals}.
+
+@seealso
+Glossari musical:
+@rglos{Pitch names},
+@rglos{Common Practice Period}.
+
+Referència de la notació:
+@rusernamed{Common notation for non-Western music,Notació comuna per a músiques no occidentals}.
+
+Fitxers instal·lats:
+@file{scm/define-note-names.scm}.
+
+Fragments de codi:
+@rlsr{Pitches}.
+
+
+@node Modificació de diverses notes a l'hora
+@subsection Modificació de diverses notes a l'hora
+@translationof Changing multiple pitches
+
+Aquesta secció tracta de la manera de modificar les altures.
+
+@menu
+* Comprovació d'octava::
+* Transposició::
+* Inversió::
+* Retrogradació::
+* Transformacions modals::
+@end menu
+
+
+@node Comprovació d'octava
+@unnumberedsubsubsec Comprovació d'octava
+@translationof Octave checks
+
+@cindex octava, comprovació de
+@cindex octava, correcció de
+@cindex control, altures de
+
+@funindex =
+@funindex \octaveCheck
+@funindex controlpitch
+
+Al mode relatiu és fàcil oblidar una marca de canvi d'octava.  Les
+comprovacions d'octava fan més fàcil trobar aquests errors,
+mitjançant la presentació d'un advertiment i corregint l'octava si
+la nota es troba a una octava diferent de l'esperat.
+
+Per comprovar l'octava d'una nota, especifiqueu l'octava absoluta
+després del símbol@tie{}@code{=}.  Aquest exemple genera un
+missatge d'advertiment (i corregeix l'altura) perquè la segona
+nota és l'octava absoluta @code{d''} en lloc de @code{d'} com
+indica la correcció d'octava.
+
+@lilypond[verbatim,quote]
+\relative {
+  c''2 d='4 d
+  e2 f
+}
+@end lilypond
+
+L'octava de les notes es pot comprovar també amb l'ordre
+@code{\octaveCheck@tie{}@var{altura_de_control}}.
+@code{@var{altura_de_control}} s'especifica en mode absolut. Això
+comprova que l'interval entre la nota anterior i la
+@code{@var{altura_de_control}} es troba dins d'una quarta (és a
+dir, el càlcul normal per al mode relatiu).  Si aquesta
+comprovació fracassa, s'imprimeix un missatge d'advertiment.  Tot
+i que la nota prèvia no es modifica, les notes posteriors estan en
+relació al valor corregit.
+
+@lilypond[verbatim,quote]
+\relative {
+  c''2 d
+  \octaveCheck c'
+  e2 f
+}
+@end lilypond
+
+Compareu els dos compassos següents.  La primera i tercera
+comprovacions de @code{\octaveCheck} fracassen, però la segona és correcta.
+
+@lilypond[verbatim,quote]
+\relative {
+  c''4 f g f
+
+  c4
+  \octaveCheck c'
+  f
+  \octaveCheck c'
+  g
+  \octaveCheck c'
+  f
+}
+@end lilypond
+
+@seealso
+Fragments de codi:
+@rlsr{Pitches}.
+
+Referència de funcionament interno:
+@rinternals{RelativeOctaveCheck}.
+
+
+@node Transposició
+@unnumberedsubsubsec Transposició
+@translationof Transpose
+
+@cindex transport
+@cindex transposició
+@cindex transposició d'altures
+@cindex transposició de notes
+@cindex altures, transport de
+@cindex notes, transport de
+
+@funindex \transpose
+
+Una expressió musical es pot transportar mitjançant
+@code{\transpose}.  La sintaxi és
+@example
+\transpose @var{nota_origen} @var{nota_destí} @var{expressió_musical}
+@end example
+
+Això significa que la @code{@var{expressió_musical}} es transporta
+l'interval que hi ha entre les notes @code{@var{nota_origen}} i
+@code{@var{nota_destí}}: qualsevol nota amb l'altura de
+@code{@var{nota_origen}} es canvia per @code{@var{nota_destí}} i
+qualsevol altra nota es transporta el mateix interval.  Les dues
+notes s'introdueixen en mode absolut.
+
+@warning{La música que està dins d'un bloc
+@code{@bs{}transpose} és absoluta, a no ser que s'inclogui una introducció
+@code{@bs{}relative} dins del bloc.}
+
+Per exemple, agafem una peça escrita en la tonalitat de Re major.
+Es pot transposar cap amunt a Mi major; observeu que també
+l'armadura de la tonalitat es transporta automàticament.
+
+@lilypond[verbatim,quote]
+\transpose d e {
+  \relative {
+    \key d \major
+    d'4 fis a d
+  }
+}
+@end lilypond
+
+Si una particel·la escrita en Do (@notation{afinació de concert}
+normal) es pot tocar amb un clarinet en La (per al qual un La
+s'escriu com un Do, i que sona una tercera menor per sota del que
+està escrit), la particel·la corresponent es produeix mitjançant:
+
+@lilypond[verbatim,quote]
+\transpose a c' {
+  \relative {
+    \key c \major
+    c'4 d e g
+  }
+}
+@end lilypond
+
+@noindent
+Observeu que especifiquem @code{\key c \major} de forma explícita.
+Si no especifiquem cap tonalitat, les notes es transporten però no
+s'imprimeix l'armadura.
+
+@code{\transpose} distingeix entre notes enarmòniques: tant
+@code{\transpose c cis} com @code{\transpose c des} transporten
+un semitó cap amunt.  La primera versió imprimeix sostinguts i les
+notes no es mouen del seu lloc a l'escala, en canvi la segona
+imprimeix bemolls de la nota següent.
+
+@lilypond[verbatim,quote]
+music = \relative { c' d e f }
+\new Staff {
+  \transpose c cis { \music }
+  \transpose c des { \music }
+}
+@end lilypond
+
+@cindex transpositors, instruments
+@cindex instruments transpositors
+
+@code{\transpose} també es pot usar per introduir notes escrites
+per a un instrument transpositor.  Els exemples interiors mostren
+com escriure altures en Do (o en @notation{afinació de concert}) i
+gravar-les per a un instrument transpositor, però també és
+possible el cas contrari si, per exemple, tenim un conjunt de
+parts instrumentals i voleu fer un guió en Do per al director. Per
+exemple, en introduir música per a trompeta en Si bemoll que
+comença per un Mi a la partitura (Re de concert), es pot escriure:
+
+@example
+musicaEnSiBemol = @{ e4 @dots{} @}
+\transpose c bes, \musicaEnSiBemol
+@end example
+
+@noindent
+Per imprimir aquesta música en Fa (per exemple, en arreglar-la per
+a trompa) podeu envolta la música existent amb un altre
+@code{\transpose}:
+
+@example
+musicaEnSiBemol = @{ e4 @dots{} @}
+\transpose f c' @{ \transpose c bes, \musicaEnSiBemol @}
+@end example
+
+@noindent
+Per veure més informació sobre instruments transpositors, consulteu
+@ref{Transposició dels instruments}.
+
+@snippets
+@lilypondfile[verbatim,quote,texidoc,doctitle]
+{transposing-pitches-with-minimum-accidentals-smart-transpose.ly}
+
+@seealso
+Referència de la notació:
+@ref{Transposició dels instruments},
+@ref{Inversió},
+@ref{Transformacions modals},
+@ref{Escriptura d'octava relativa},
+@ref{Retrogradació}.
+
+Fragments de codi:
+@rlsr{Pitches}.
+
+Referència de funcionament intern:
+@rinternals{TransposedMusic}.
+
+@funindex \transpose
+@funindex \chordmode
+@funindex \relative
+
+@knownissues
+La conversió relativa no afecta a les seccions
+@code{\transpose}, @code{\chordmode} ni @code{\relative} dins del
+seu argument.  Per usar el mode relatiu dins de música
+transportada, es pot col·locar un altre @code{\relative} dins de
+@code{\transpose}.
+
+No s'imprimeixen alteracions accidentals triples quan s'usa
+@code{\transpose}.  En lloc d'això, s'usarà una nota
+@q{equivalent enarmònicament} (p.ex., Re bemoll en lloc de Mi
+triple bemoll).
+
+
+@node Inversió
+@unnumberedsubsubsec Inversió
+@translationof Inversion
+
+@cindex inversió
+@cindex operació de inversió
+@funindex \inversion
+
+Una expressió musical es pot invertir i transportar en una sola
+operació amb:
+
+@example
+\inversion @var{nota_pivot} @var{nota_destí} @var{expressió_musical}
+@end example
+
+La @code{@var{expressió_musical}} s'inverteix interval a interval
+al voltant de @code{@var{nota_pivot}}, i després es transport de
+manera que @code{@var{nota_pivot}} es fa correspondre amb
+@code{@var{nota_destí}}.
+
+@lilypond[verbatim,quote]
+music = \relative { c' d e f }
+\new Staff {
+  \music
+  \inversion d' d' \music
+  \inversion d' ees' \music
+}
+@end lilypond
+
+@warning{Els motius a invertir haurien de venir expressats en mode
+absolut o convertir-se prèviament a la forma absoluta
+envoltant-los en un bloc @code{\relative}.}
+
+@seealso
+Referència de la notació:
+@ref{Transformacions modals},
+@ref{Retrogradació},
+@ref{Transposició}.
+
+
+@node Retrogradació
+@unnumberedsubsubsec Retrogradació
+@translationof Retrograde
+
+@cindex retrogradació, transformació de
+@cindex transformació de retrogradació
+@cindex operació de retrogradació
+@funindex \retrograde
+
+Es pot revertir una expressió musical per produir la seva retrogradació:
+
+@lilypond[verbatim,quote]
+music = \relative { c'8. ees16( fis8. a16 b8.) gis16 f8. d16 }
+
+\new Staff {
+  \music
+  \retrograde \music
+}
+@end lilypond
+
+@knownissues
+Les lligadures d'unió manuals dins de @code{\retrograde} es
+trencaran i generaran advertiments.  Es poden generar algunes
+lligadures automàticament activant
+@rusernamed{Autommatic note splitting,Divisió automàtica de les notes}.
+
+@seealso
+Referència de la notació:
+@ref{Inversió},
+@ref{Transformacions modals},
+@ref{Transposició}.
+
+
+@node Transformacions modals
+@unnumberedsubsubsec Transformacions modals
+@translationof Modal transformations
+
+@cindex transformacions modals
+@cindex modals, transformacions
+@cindex operacions modals
+
+En una composició musical que està basada en una escala amb
+freqüència es transformen els motius de diverses formes.  Un motiu
+es pot @notation{transportar} perquè comenci en diferents llocs de
+l'escala o pot @notation{invertir-se} al voltant d'una nota pivot
+de l'escala.  També es pot revertir per produir una
+@notation{retrogradació}, vegeu @ref{Retrogradació}.
+
+@warning{Qualsevol nota que no entri a la escala donada, es
+deixarà sense transformar.}
+
+@subsubsubheading Transposició modal
+
+@cindex transport
+@cindex transport modal
+@cindex modal, transposició
+@cindex transposició modal
+@cindex operació de transposició
+@funindex \modalTranspose
+
+Es pot transportar un motiu dins d'una escala donada amb:
+
+@example
+\modalTranspose @var{nota_origen} @var{nota_destí} @var{escala} @var{motiu}
+@end example
+
+Les notes del @var{motiu} es desplacen dins de la @var{escala} el
+nombre de graus de l'escala donats per l'interval entre
+@var{nota_destí} y @var{nota_origen}:
+
+@lilypond[verbatim,quote]
+diatonicScale = \relative { c' d e f g a b }
+motif = \relative { c'8 d e f g a b c }
+
+\new Staff {
+  \motif
+  \modalTranspose c f \diatonicScale \motif
+  \modalTranspose c b, \diatonicScale \motif
+}
+@end lilypond
+
+Es poden especificar escales ascendents de qualsevol longitud i
+amb qualssevol intervals:
+
+@lilypond[verbatim,quote]
+pentatonicScale = \relative { ges aes bes des ees }
+motif = \relative { ees'8 des ges,4 <ges' bes,> <ges bes,> }
+
+\new Staff {
+  \motif
+  \modalTranspose ges ees' \pentatonicScale \motif
+}
+@end lilypond
+
+Quan es fa servir amb una escola cromàtica, @code{\modalTranspose}
+té un efecte semblant a @code{\transpose}, però amb la
+possibilitat d'especificar els noms de les notes que es vulguin usar:
+
+@lilypond[verbatim,quote]
+chromaticScale = \relative { c' cis d dis e f fis g gis a ais b }
+motif = \relative { c'8 d e f g a b c }
+
+\new Staff {
+  \motif
+  \transpose c f \motif
+  \modalTranspose c f \chromaticScale \motif
+}
+@end lilypond
+
+@subsubsubheading Inversió modal
+
+@cindex modal, inversió
+@cindex inversió modal
+@cindex operació d'inversió nmodal
+@funindex \modalInversion
+
+Es pot invertir un motiu dins d'una escala donada al voltant d'una
+nota pivot donada i transportada al mateix temps en una única
+operaćió, amb:
+
+@example
+\modalInversion @var{nota-pivote} @var{nota-destino} @var{escala} @var{motivo}
+@end example
+
+Les notes del @var{motiu} col·loquen al mateix nombre de graus de
+distància de l'escala a partir de la @var{nota_pivot} dins de
+l'@var{escala}, però en la direcció oposada, i el resultat es
+desplaça després dins de l'@var{escala} el nombre de grados de
+l'escala donats per l'interval entre la @var{nota_destí} i la
+@var{nota_pivot}.
+
+Així doncs, per invertir senzillament al voltant d'una nota de
+l'escala, utilitzeu el mateix valor per a @var{nota_pivot} i
+@var{nota_destí}:
+
+@lilypond[verbatim,quote]
+octatonicScale = \relative { ees' f fis gis a b c d }
+motif = \relative { c'8. ees16 fis8. a16 b8. gis16 f8. d16 }
+
+\new Staff {
+  \motif
+  \modalInversion fis' fis' \octatonicScale \motif
+}
+@end lilypond
+
+Per invertir al voltant d'una nota pivot entre dues notes de
+l'escala, invertiu al voltant d'una de les notes i després
+transporteu en un grau de l'escala.  les dues notes especificades
+es poden interpretar com que fan una forquilla entre elles a la
+nota pivot:
+
+@lilypond[verbatim,quote]
+scale = \relative { c' g' }
+motive = \relative { c' c g' c, }
+
+\new Staff {
+  \motive
+  \modalInversion c' g' \scale \motive
+}
+@end lilypond
+
+L'operació combinada d'inversió i retrogradació produeix la
+inversió retrògrada:
+
+@lilypond[verbatim,quote]
+octatonicScale = \relative { ees' f fis gis a b c d }
+motif = \relative { c'8. ees16 fis8. a16 b8. gis16 f8. d16 }
+
+\new Staff {
+  \motif
+  \retrograde \modalInversion c' c' \octatonicScale \motif
+}
+@end lilypond
+
+@seealso
+Referència de la notació:
+@ref{Inversió},
+@ref{Retrogradació},
+@ref{Transposició}.
+
+
+@node Impressió de les altures
+@subsection Impressió de les altures
+@translationof Displaying pitches
+
+Aquesta secció tracta de com alterar la presentació de l'altura de
+les notes.
+
+@menu
+* Clau::
+* Armadura de la tonalitat::
+* Claudàtors d'octava::
+* Transposició dels instruments::
+* Alteracions accidentals automàtiques::
+* Tessitura::
+@end menu
+
+@node Clau
+@unnumberedsubsubsec Clau
+@translationof Clef
+
+@cindex Sol, clau de
+@cindex Do, clau de
+@cindex Fa, clau de
+@cindex violí, clau de
+@cindex alto, clau de
+@cindex tenor, clau de
+@cindex baix, clau de
+@cindex francesa, clau
+@cindex soprano, clau de
+@cindex mezzosoprano, clau de
+@cindex baríton, clau de
+@cindex contrabaix, clau de
+@cindex clau
+@cindex antigues, claus
+@cindex clau antiga
+@cindex clau de Sol
+@cindex clau de Do
+@cindex clau de Fa
+@cindex clau de violí
+@cindex clau de alto
+@cindex clau de tenor
+@cindex clau de baix
+@cindex clau francesa
+@cindex clau de soprano
+@cindex clau de mezzosoprano
+@cindex clau de baríton
+@cindex clau de contrabaix
+
+@funindex \clef
+
+Sense cap ordre explícita, la clau predeterminada al LilyPond és
+la clau @qq{treble} (o clau de @emph{Sol}).
+
+@lilypond[verbatim,quote,fragment,ragged-right]
+c'2 c'
+@end lilypond
+
+Tanmateix, es pot  canviar la clau usant l'ordre
+@code{\clef} i el nom de la clau corresponent.  Als exemples
+següents es mostra la posició del @emph{Do central} en diferents claus.
+
+@lilypond[verbatim,quote,fragment]
+\clef treble
+c'2 c'
+\clef alto
+c'2 c'
+\clef tenor
+c'2 c'
+\clef bass
+c'2 c'
+@end lilypond
+
+Per veure el repertori complet dels possibles noms per a les
+claus, consulteu @rusernamed{Clef styles,Estils de clau}.
+
+Les claus especials, com les utilitzades a la música
+@emph{antiga}, es descriuen a
+@rusernamed{Mensural clefs,Claus de la música mensural} i a
+@rusernamed{Gregorian clefs,Claus del cant gregorià}. La música
+que requereix claus de tabulatura s'estudia a
+@rusernamed{Default tablatures,Tabulatures predeterminades} i a
+@rusernamed{Costum tablatures,Tabulatures personalizadas}.
+
+@cindex Claus de guia
+@cindex Claus amb notes guia
+
+Per fer servir claus a les notes guia, vegeu les ordres
+@code{\cueClef} i @code{\cueDuringWithClef} a
+@rusernamed{Formatting cue notes,Formatació de les notes guia}
+
+@cindex transpositores, claus
+@cindex clau transpositora
+@cindex octava, transposició
+@cindex transposició, de octava, opcional
+@cindex octava, transposició, opcional
+@cindex coral, clau de tenor
+@cindex tenor, clau de, coral
+
+En afegir @code{_8} o @code{^8} al nom de la clau, la clau es
+transposa una octava cap avall o cap amunt, respectivament, i
+@code{_15} i @code{^15} la transposa dos octaves.  Si cal
+es poden usar altres nombres enters.  L'argument
+@var{nome_de_clau} s'ha de envoltar entre cometes si conté
+caràcters no alfabètics:
+
+@lilypond[verbatim,quote,fragment]
+\clef treble
+c'2 c'
+\clef "treble_8"
+c'2 c'
+\clef "bass^15"
+c'2 c'
+\clef "alto_2"
+c'2 c'
+\clef "G_8"
+c'2 c'
+\clef "F^5"
+c'2 c'
+@end lilypond
+
+Es pot obtenir una indicació d'octava opcional envoltant
+l'argument numèric entre parèntesi o claudàtors rectes:
+
+@lilypond[verbatim,quote,fragment]
+\clef "treble_(8)"
+c'2 c'
+\clef "bass^[15]"
+c'2 c'
+@end lilypond
+
+Les altures s'imprimeixen com si l'argument numèric no tingués els
+parèntesis o claudàtors.
+
+De forma predeterminada, un canvi de clau que es produeix en un
+salt de línia provoca que el símbo de clau nou s'imprimeixi al
+final de la línia anterior, com una clau @emph{de cortesia}, així
+com al principi del següent.  Aquesta clau @emph{de cortesia} es
+pot suprimir.
+
+@lilypond[verbatim,quote,fragment]
+\clef treble { c'2 c' } \break
+\clef bass { c'2 c' } \break
+\clef alto
+  \set Staff.explicitClefVisibility = #end-of-line-invisible
+  { c'2 c' } \break
+  \unset Staff.explicitClefVisibility
+\clef bass { c'2 c' } \break
+@end lilypond
+
+De forma predeterminada, una clau que s'ha imprès prèviament no es
+torna a imprimir si es fa servir un altre cop la mateixa ordre
+@code{\clef}, i s'ignora.  La instrucció @code{\set
+Staff.forceClef = ##t} modifica aquest comportament.
+
+@lilypond[verbatim,quote,fragment]
+  \clef treble
+  c'1
+  \clef treble
+  c'1
+  \set Staff.forceClef = ##t
+  c'1
+  \clef treble
+  c'1
+@end lilypond
+
+Quan hi ha un canvi de clau manual, el glif de la clau modificada
+és més petit del normal.  Es pot sobreescriure aquest comportament.
+
+@lilypond[verbatim,quote,fragment]
+  \clef "treble"
+  c'1
+  \clef "bass"
+  c'1
+  \clef "treble"
+  c'1
+  \override Staff.Clef.full-size-change = ##t
+  \clef "bass"
+  c'1
+  \clef "treble"
+  c'1
+  \revert Staff.Clef.full-size-change
+  \clef "bass"
+  c'1
+  \clef "treble"
+  c'1
+@end lilypond
+
+@snippets
+
+@lilypondfile[verbatim,quote,texidoc,doctitle]
+{tweaking-clef-properties.ly}
+
+@seealso
+Referencia de la notación:
+@rusernamed{Mensural clefs,Claus de la música mensural},
+@rusernamed{Gregorian clefs,Claus del cant gregorià},
+@rusernamed{Default tablatures,Tabulatures predeterminades}
+@rusernamed{Costum tablatures,Tabulatures personalizadas}.
+@rusernamed{Formatting cue notes,Formatació de les notes guia}.
+
+Fitxers instal·lats:
+@file{scm/parser-clef.scm}.
+
+Fragments de codi:
+@rlsr{Pitches}.
+
+Referència de funcionament intern:
+@rinternals{Clef_engraver},
+@rinternals{Clef},
+@rinternals{ClefModifier},
+@rinternals{clef-interface}.
+
+@knownissues
+Els números d'octava adjunts a les claus es tracten com grobs
+diferents.  Així doncs, qualsevol @code{\override}
+(sobreescriptura) efectuada a l'objecte @var{Clef} s'haurà
+d'aplicar també al grob @var{ClefModifier} com un @code{\override}
+diferent.
+
+@lilypond[fragment,quote,verbatim]
+\new Staff \with {
+  \override Clef.color = #blue
+  \override ClefModifier.color = #red
+}
+
+\clef "treble_8" c'4
+@end lilypond
+
+
+@node Armadura de la tonalitat
+@unnumberedsubsubsec Armadura de la tonalitat
+@translationof Key signature
+
+@cindex Armadura de la tonalitat
+
+@funindex \key
+
+@c duplicated in Key signature and Accidentals
+@warning{Les alteracions accidentals i les armadures són una causa
+freqüent de confusió per al nous usuaris.  Al LilyPond, el noms de
+les notes són el codi d'entrada en brut; l'armadura i la clau
+determinen de quina forma es presenta aquest codi en brut.  Una
+nota sense alteració com@tie{}@code{c} significa @q{Do natural},
+sense que l'afectin l'armadura o la clau.  Per veure més
+informació, consulteu @rlearning{Altures y armadures}.}
+
+L'armadura indica la tonalitat en la qual es toca una peça.  Està
+denotada per un conjunt d'alteracions (bemolls o sostinguts) al
+començament del pentagrama.  L'establiment o modificació de
+l'armadura es fa amb l'ordre @code{\key}:
+
+@example
+\key @var{nota} @var{modo}
+@end example
+
+@funindex \major
+@funindex \minor
+@funindex \ionian
+@funindex \locrian
+@funindex \aeolian
+@funindex \mixolydian
+@funindex \lydian
+@funindex \phrygian
+@funindex \dorian
+
+@cindex modes eclesiásticos
+@cindex modes
+@cindex major, mode
+@cindex menor, mode
+@cindex eoni, mode
+@cindex locri, mode
+@cindex eoli, mode
+@cindex mixolidi, mode
+@cindex lidi, mode
+@cindex frigi, mode
+@cindex dòric, mode
+
+@noindent
+Aquí, @code{@var{mode}} ha de ser @code{\major} o @code{\minor}
+per obtenir la tonalitat @code{@var{nota}} major o noms estàndard
+de mode (també coneguts com @notation{modes eclesiàstics}):
+@code{\ionian} (jònic), @code{\dorian} (dòric),
+@code{\phrygian} (frigi), @code{\lydian} (lidi),
+@code{\mixolydian} (mixolidi), @code{\aeolian} (eoli) i
+@code{\locrian} (locri).
+
+@lilypond[verbatim,quote,fragment]
+\relative {
+  \key g \major
+  fis''1
+  f
+  fis
+}
+@end lilypond
+
+Es poden definir modes addicionals, escrivint una llista amb
+l'alteració que porta cada nota de l'escala quan el mode comença
+amb Do.
+
+@lilypond[verbatim,quote]
+freygish = #`((0 . ,NATURAL) (1 . ,FLAT) (2 . ,NATURAL)
+    (3 . ,NATURAL) (4 . ,NATURAL) (5 . ,FLAT) (6 . ,FLAT))
+
+\relative {
+  \key c \freygish c'4 des e f
+  \bar "||" \key d \freygish d es fis g
+}
+@end lilypond
+
+Les alteracions de l'armadura de la tonalitat es poden imprimir en
+una octava diferent que en les seves posicions tradicionals, o en
+més d'una octava, usat les propietats @code{flat-positions} i
+@code{sharp-positions} de @code{KeySignature}.  Les entrades en
+aquestes propietats especifiquen el rang de posicions de
+pentagrama en el qual s'imprimiran les alteracions, les
+alteracions es col·loquen dins de l'octava que acaba en aquesta
+posició del pentagrama.
+
+@lilypond[verbatim, quote,fragment]
+\override Staff.KeySignature.flat-positions = #'((-5 . 5))
+\override Staff.KeyCancellation.flat-positions = #'((-5 . 5))
+\clef bass \key es \major es g bes d'
+\clef treble \bar "||" \key es \major es' g' bes' d''
+
+\override Staff.KeySignature.sharp-positions = #'(2)
+\bar "||" \key b \major b' fis' b'2
+@end lilypond
+
+@snippets
+
+@lilypondfile[verbatim,quote,texidoc,doctitle]
+{preventing-natural-signs-from-being-printed-when-the-key-signature-changes.ly}
+
+@lilypondfile[verbatim,quote,texidoc,doctitle]
+{non-traditional-key-signatures.ly}
+
+
+@seealso
+Glossari musical:
+@rglos{church mode},
+@rglos{scordatura}.
+
+Manual de aprenentatge:
+@rlearning{Altures i armadures}.
+
+Fragments de codi:
+@rlsr{Pitches}.
+
+Referència de funcionament interno:
+@rinternals{KeyChangeEvent},
+@rinternals{Key_engraver},
+@rinternals{Key_performer},
+@rinternals{KeyCancellation},
+@rinternals{KeySignature},
+@rinternals{key-signature-interface}.
+
+
+@node Claudàtors d'octava
+@unnumberedsubsubsec Claudàtors d'octava
+@translationof Ottava brackets
+
+@cindex ottava
+@cindex 15ma
+@cindex 8va
+@cindex octava
+
+@funindex set-octavation
+@funindex \ottava
+
+Els @notation{claudàtors d'Ottava} introdueixen un transport
+addicional d'una octava per al pentagrama.
+
+@lilypond[verbatim,quote]
+\relative a' {
+  a2 b
+  \ottava #-2
+  a2 b
+  \ottava #-1
+  a2 b
+  \ottava #0
+  a2 b
+  \ottava #1
+  a2 b
+  \ottava #2
+  a2 b
+}
+@end lilypond
+
+@snippets
+
+@lilypondfile[verbatim,quote,texidoc,doctitle]
+{ottava-text.ly}
+
+@lilypondfile[verbatim,quote,texidoc,doctitle]
+{adding-an-ottava-marking-to-a-single-voice.ly}
+
+@lilypondfile[verbatim,quote,texidoc,doctitle]
+{modifying-the-ottava-spanner-slope.ly}
+
+@seealso
+Glossari musical:
+@rglos{octavation}.
+
+Fragments de codi:
+@rlsr{Pitches}.
+
+Referència de funcionament interno:
+@rinternals{Ottava_spanner_engraver},
+@rinternals{OttavaBracket},
+@rinternals{ottava-bracket-interface}.
+
+
+@node Transposició dels instruments
+@unnumberedsubsubsec Transposició dels instruments
+@translationof Instrument transpositions
+
+@cindex transposició de MIDI
+@cindex transposició instrumental
+@cindex transpositor, instrument
+@cindex MIDI
+@cindex MIDI, transposició
+
+@funindex \transposition
+
+En gravar partitures on participen instruments transpositors,
+certes partes es poden gravar en un to diferent del
+@notation{to de concert}.  En aquests casos s'ha d'especificar la
+tonalitat del @notation{instrumento transpositor}; si no es fa
+així, la sortida MIDI i les notes guia a altres parts produiran
+altures incorrectes.  Per veure més informació sobre parts citades
+com a guia, consulteu @rusernamed{Quoting other voices,Cites d'altres veus}.
+
+@example
+\transposition @var{pitch}
+@end example
+
+El to usat per a @code{\transposition} s'ha de correspondre amb el
+so real que s'escolta quan l'instrument transpositor interpreta un
+Do central @code{c'} escrit al pentagrama.  Aquesta nota s'escriu
+en altura absoluta, per tant un instrument que produeix un so real
+un to més agut que la música impresa (un instrument en Re) ha d'usar
+@code{\transposition d'}.  L'ordre @code{\transposition} s'ha
+d'usar @emph{solament} si les notes @emph{no} s'escriuran en
+afinació de concert.
+
+A continuació es poden veure algunes notes per a violí i per a
+clarinet en Si bemoll, on les parts s'han introduït usant les
+notes i l'armadura tal i com apareixen a la partitura del
+director.  El que toquen els dos instruments està sonant a l'uníson.
+
+@lilypond[verbatim,quote]
+\new GrandStaff <<
+  \new Staff = "violin" {
+    \relative c'' {
+      \set Staff.instrumentName = #"Vln"
+      \set Staff.midiInstrument = #"violin"
+      % no estrictament necessari, però un bon recordatori
+      \transposition c'
+
+      \key c \major
+      g4( c8) r c r c4
+    }
+  }
+  \new Staff = "clarinet" {
+    \relative c'' {
+      \set Staff.instrumentName = \markup { Cl (B\flat) }
+      \set Staff.midiInstrument = #"clarinet"
+      \transposition bes
+
+      \key d \major
+      a4( d8) r d r d4
+    }
+  }
+>>
+@end lilypond
+
+L'ordre @code{\transposition} es pot canviar durant la peça.  Per
+exemple, un clarinetista pot canviar del clarinet en La al
+clarinet en Si bemoll.
+
+@lilypond[verbatim,quote]
+flute = \relative c'' {
+  \key f \major
+  \cueDuring #"clarinet" #DOWN {
+    R1 _\markup\tiny "clarinet"
+    c4 f e d
+    R1 _\markup\tiny "clarinet"
+  }
+}
+clarinet = \relative c'' {
+  \key aes \major
+  \transposition a
+  aes4 bes c des
+  R1^\markup { muta in B\flat }
+  \key g \major
+  \transposition bes
+  d2 g,
+}
+\addQuote "clarinet" \clarinet
+<<
+  \new Staff \with { instrumentName = #"Flute" }
+    \flute
+  \new Staff \with { instrumentName = #"Cl (A)" }
+    \clarinet
+>>
+@end lilypond
+
+@seealso
+Glossari musical:
+@rglos{concert pitch},
+@rglos{transposing instrument}.
+
+Referència de la notació:
+@rusernamed{Quoting other voices,Cites d'altres veus},
+@ref{Transposició}.
+
+Fragments de codi:
+@rlsr{Pitches}.
+
+
+@node Alteracions accidentals automàtiques
+@unnumberedsubsubsec Alteracions accidentals automàtiques
+@translationof Automatic accidentals
+
+@cindex automàtiques, alteracions
+@cindex alteracions automàtiques
+@cindex alteracions accidentals
+@cindex alteracions, estil de las
+@cindex predeterminat, estil de las alteracions
+@cindex alteracions, estilo predeterminat de les
+
+@funindex \accidentalStyle
+@funindex voice
+@funindex default
+
+Hi ha moltes convencions diferents sobre la forma de gravar
+les alteracions. El LilyPond proporciona una funció per
+especificar quin estil d'alteracions usar.  Aquesta funció
+s'invoca de la manera següent:
+
+@example
+\new Staff <<
+  \accidentalStyle voice
+  @{ @dots{} @}
+>>
+@end example
+
+L'estil d'alteracions s'aplica al @code{Staff} en curs de forma
+predeterminada (amb l'excepció dels estils @code{piano} i
+@code{piano-cautionary}, que s'expliquen més
+endavant). Opcionalment, la funció pot agafar un segon argument
+que determina en quin àmbit s'ha de canviar l'estil. Per exemple,
+per usar el mateix estil en tots els pentagrames del
+@code{StaffGroup} en curs, useu
+
+@example
+\accidentalStyle StaffGroup.voice
+@end example
+
+Estan contemplats els següents estils d'alteració.  Per donar una
+mostra de cada u dels estils, utilitzem l'exemple següent:
+
+@lilypond[verbatim,quote]
+musicA = {
+  <<
+    \relative {
+      cis''8 fis, bes4 <a cis>8 f bis4 |
+      cis2. <c, g'>4 |
+    }
+    \\
+    \relative {
+      ais'2 cis, |
+      fis8 b a4 cis2 |
+    }
+  >>
+}
+
+musicB = {
+  \clef bass
+  \new Voice {
+    \voiceTwo \relative {
+      <fis a cis>8[ <fis a cis>
+      \change Staff = up
+      cis' cis
+      \change Staff = down
+      <fis, a> <fis a>]
+      \showStaffSwitch
+      \change Staff = up
+      dis'4 |
+      \change Staff = down
+      <fis, a cis>4 gis <f a d>2 |
+    }
+  }
+}
+
+\new PianoStaff {
+  <<
+    \context Staff = "up" {
+      \accidentalStyle default
+      \musicA
+    }
+    \context Staff = "down" {
+      \accidentalStyle default
+      \musicB
+    }
+  >>
+}
+@end lilypond
+
+Observeu que les últimes línies d'aquest exemple es poden
+substituir per les següents, sempre i quan vulguem usar el mateix
+estil als dos pentagrames.
+
+@example
+\new PianoStaff @{
+  <<
+    \context Staff = "up" @{
+      %%% canvieu la línia següent com desitgeu:
+      \accidentalStyle Score.default
+      \musicA
+    @}
+    \context Staff = "down" @{
+      \musicB
+    @}
+  >>
+@}
+@end example
+
+@c don't use verbatim in this table.
+@table @code
+@item default (predeterminado)
+
+@cindex alteracions, estil predeterminat
+
+@funindex default
+
+Es el comportament de gravat predeterminat per a composició.
+Correspon a la pràctica comuna del segle XVIII: les alteracions
+accidentals es recorden fins al final del compàs en el qual
+apareixen i sols en la mateixa octava.  Així, a l'exemple següent,
+no s'imprimeixen becaires abans del Si natural al segon compàs ni
+a l'últim Do:
+
+@lilypond[quote]
+musicA = {
+  <<
+    \relative {
+      cis''8 fis, bes4 <a cis>8 f bis4 |
+      cis2. <c, g'>4 |
+    }
+    \\
+    \relative {
+      ais'2 cis, |
+      fis8 b a4 cis2 |
+    }
+  >>
+}
+
+musicB = {
+  \clef bass
+  \new Voice {
+    \voiceTwo \relative {
+      <fis a cis>8[ <fis a cis>
+      \change Staff = up
+      cis' cis
+      \change Staff = down
+      <fis, a> <fis a>]
+      \showStaffSwitch
+      \change Staff = up
+      dis'4 |
+      \change Staff = down
+      <fis, a cis>4 gis <f a d>2 |
+    }
+  }
+}
+
+\new PianoStaff {
+  <<
+    \context Staff = "up" {
+      \accidentalStyle default
+      \musicA
+    }
+    \context Staff = "down" {
+      \accidentalStyle default
+      \musicB
+    }
+  >>
+}
+@end lilypond
+
+@item voice (veu)
+
+@cindex alteració, estil de veu de
+@cindex veu, estil d'alteracions
+@cindex alteracions estil modern
+@cindex modern, estil de alteracions
+@cindex alteracions, estil, modern-precaució
+@cindex modern-precaució, estil d'alteracions
+
+@funindex voice
+
+El comportament normal és recordar les alteracions accidentals al
+nivell de @code{Staff}.  En aquest estil, tanmateix, es graven les
+alteracions individualment per a cada veu.  A part d'això la regla
+és semblant a @code{default}.
+
+Com a resultat, les alteracions d'una veu no es cancel·len a les
+altres veus, el que amb freqüència porta a un resultat no
+desitjat: a l'exemple següent és difícil determinar si el segon La
+s'ha de tocar natural o sostingut.  Per tant, l'opció @code{voice}
+s'ha d'usar sols si les veus es llegiran individualment per músics
+diferents.  Si el pentagrama s'utilitzarà per part d'un sols músic
+(per exemple un director, o a una partitura de piano), aleshores
+s'han d'usar en el seu lloc els estils @code{modern} o
+@code{modern-cautionary}.
+
+
+@lilypond[quote]
+musicA = {
+  <<
+    \relative {
+      cis''8 fis, bes4 <a cis>8 f bis4 |
+      cis2. <c, g'>4 |
+    }
+    \\
+    \relative {
+      ais'2 cis, |
+      fis8 b a4 cis2 |
+    }
+  >>
+}
+
+musicB = {
+  \clef bass
+  \new Voice {
+    \voiceTwo \relative {
+      <fis a cis>8[ <fis a cis>
+      \change Staff = up
+      cis' cis
+      \change Staff = down
+      <fis, a> <fis a>]
+      \showStaffSwitch
+      \change Staff = up
+      dis'4 |
+      \change Staff = down
+      <fis, a cis>4 gis <f a d>2 |
+    }
+  }
+}
+
+\new PianoStaff {
+  <<
+    \context Staff = "up" {
+      \accidentalStyle voice
+      \musicA
+    }
+    \context Staff = "down" {
+      \accidentalStyle voice
+      \musicB
+    }
+  >>
+}
+@end lilypond
+
+@item modern
+
+@cindex alteracions, estil modern
+@cindex modern, alteracions d'estil
+
+@funindex modern
+
+Aquesta regla correspon a la pràctica comuna del segle XX.  Omet
+alguns becaires addicionals, que tradicionalment s'imprimien
+precedint a un sostingut que segueix a un doble sostingut, o a un
+bemoll que segueix a un doble bemoll.  La regla @code{modern}
+imprimeix les mateix alteracions que l'estil @code{default}, amb
+dos addicions que serveixen per evitar la ambigüitat: després
+d'alteracions temporals s'imprimeixen indicacions de cancel·lació
+també al compàs següent (per a notes a la mateixa octava) i, al
+mateix compàs, per a notes a octaves diferents.  D'aquí els
+becaires abans del Si natural i del Do al segon compàs del
+pentagrama superior:
+
+@lilypond[quote]
+musicA = {
+  <<
+    \relative {
+      cis''8 fis, bes4 <a cis>8 f bis4 |
+      cis2. <c, g'>4 |
+    }
+    \\
+    \relative {
+      ais'2 cis, |
+      fis8 b a4 cis2 |
+    }
+  >>
+}
+
+musicB = {
+  \clef bass
+  \new Voice {
+    \voiceTwo \relative {
+      <fis a cis>8[ <fis a cis>
+      \change Staff = up
+      cis' cis
+      \change Staff = down
+      <fis, a> <fis a>]
+      \showStaffSwitch
+      \change Staff = up
+      dis'4 |
+      \change Staff = down
+      <fis, a cis>4 gis <f a d>2 |
+    }
+  }
+}
+
+\new PianoStaff {
+  <<
+    \context Staff = "up" {
+      \accidentalStyle modern
+      \musicA
+    }
+    \context Staff = "down" {
+      \accidentalStyle modern
+      \musicB
+    }
+  >>
+}
+@end lilypond
+
+@item modern-cautionary (modern de precaució)
+
+@cindex alteracions, estil modern de precaució
+@cindex modern, alteracions d'estil
+@cindex modern de precaució, alteracions d'estil
+
+@funindex modern-cautionary
+
+Aquesta regla és semblant a @code{modern}, però les alteracions
+@q{afegides} se imprimeixen como alteracions de precaució (entre
+parèntesis).  També es poden imprimir en una mida diferent
+sobreescrivint la propietat @code{font-size} de l'objecte
+@code{AccidentalCautionary}.
+
+@lilypond[quote]
+musicA = {
+  <<
+    \relative {
+      cis''8 fis, bes4 <a cis>8 f bis4 |
+      cis2. <c, g'>4 |
+    }
+    \\
+    \relative {
+      ais'2 cis, |
+      fis8 b a4 cis2 |
+    }
+  >>
+}
+
+musicB = {
+  \clef bass
+  \new Voice {
+    \voiceTwo \relative {
+      <fis a cis>8[ <fis a cis>
+      \change Staff = up
+      cis' cis
+      \change Staff = down
+      <fis, a> <fis a>]
+      \showStaffSwitch
+      \change Staff = up
+      dis'4 |
+      \change Staff = down
+      <fis, a cis>4 gis <f a d>2 |
+    }
+  }
+}
+
+\new PianoStaff {
+  <<
+    \context Staff = "up" {
+      \accidentalStyle modern-cautionary
+      \musicA
+    }
+    \context Staff = "down" {
+      \accidentalStyle modern-cautionary
+      \musicB
+    }
+  >>
+}
+@end lilypond
+
+@item modern-voice (modern, per a veus)
+
+@cindex alteracions, en diverses veus
+@cindex alteracions modernes
+@cindex modern, alteracions d'estil
+@cindex veus, alteracions en diverses
+@cindex alteració, estil modern de
+
+@funindex modern-voice
+
+Aquesta regla s'usa perquè puguin llegir les alteracions a
+diverses veus, tant els músics que toquen una veu com els musics
+que toquen totes les veus.  S'imprimeixen les alteracions per a
+cada veu, però @emph{es cancel·len} entre veus dins del mateix
+@code{Staff}.  Per tant, el La a l'últim compàs es cancel·la
+perquè la cancel·lació anterior estava a una veu diferent, i el Re
+al pentagrama inferior es cancel·la a causa de l'alteració a una
+altra veu al compàs previ:
+
+@lilypond[quote]
+musicA = {
+  <<
+    \relative {
+      cis''8 fis, bes4 <a cis>8 f bis4 |
+      cis2. <c, g'>4 |
+    }
+    \\
+    \relative {
+      ais'2 cis, |
+      fis8 b a4 cis2 |
+    }
+  >>
+}
+
+musicB = {
+  \clef bass
+  \new Voice {
+    \voiceTwo \relative {
+      <fis a cis>8[ <fis a cis>
+      \change Staff = up
+      cis' cis
+      \change Staff = down
+      <fis, a> <fis a>]
+      \showStaffSwitch
+      \change Staff = up
+      dis'4 |
+      \change Staff = down
+      <fis, a cis>4 gis <f a d>2 |
+    }
+  }
+}
+
+\new PianoStaff {
+  <<
+    \context Staff = "up" {
+      \accidentalStyle modern-voice
+      \musicA
+    }
+    \context Staff = "down" {
+      \accidentalStyle modern-voice
+      \musicB
+    }
+  >>
+}
+@end lilypond
+
+@item modern-voice-cautionary (modern, veu, de precaució)
+
+@cindex alteració, estil de veu de precaució modern
+@cindex alteració de veu de precaució modern, estil de
+@cindex alteració, modern de precaució, veu, estil de
+@funindex modern-voice-cautionary
+
+Aquesta regla és la mateixa que @code{modern-voice}, però amb les
+alteracions afegides (les que l'estilo @code{voice} no imprimeix)
+composades com de precaució.  Fins i tot malgrat que totes les
+alteracions impreses per l'estil @code{default} @emph{són}
+impreses amb aquesta regla, algunes d'elles es graven com de
+precaució.
+
+@lilypond[quote]
+musicA = {
+  <<
+    \relative {
+      cis''8 fis, bes4 <a cis>8 f bis4 |
+      cis2. <c, g'>4 |
+    }
+    \\
+    \relative {
+      ais'2 cis, |
+      fis8 b a4 cis2 |
+    }
+  >>
+}
+
+musicB = {
+  \clef bass
+  \new Voice {
+    \voiceTwo \relative {
+      <fis a cis>8[ <fis a cis>
+      \change Staff = up
+      cis' cis
+      \change Staff = down
+      <fis, a> <fis a>]
+      \showStaffSwitch
+      \change Staff = up
+      dis'4 |
+      \change Staff = down
+      <fis, a cis>4 gis <f a d>2 |
+    }
+  }
+}
+
+\new PianoStaff {
+  <<
+    \context Staff = "up" {
+      \accidentalStyle modern-voice-cautionary
+      \musicA
+    }
+    \context Staff = "down" {
+      \accidentalStyle modern-voice-cautionary
+      \musicB
+    }
+  >>
+}
+@end lilypond
+
+@item piano
+
+@cindex piano, alteracions de
+@cindex alteracions de piano
+@cindex piano, estil de alteracions de
+
+@funindex piano
+
+Aquesta regla reflexa la pràctica del segle XX per a la notació de
+piano.  El seu comportament és molt semblan a l'estil
+@code{modern}, però aquí les alteracions també es cancel·len entre
+diferents pentagrames del mateix grup @code{GrandStaff} o @code{PianoStaff},
+d'aquí totes les cancel·lacions de les últimes notes.
+
+Aquest estil d'alteració s'aplica de manera predeterminada al grup
+@code{GrandStaff} o @code{PianoStaff} en curs.
+
+@lilypond[quote]
+musicA = {
+  <<
+    \relative {
+      cis''8 fis, bes4 <a cis>8 f bis4 |
+      cis2. <c, g'>4 |
+    }
+    \\
+    \relative {
+      ais'2 cis, |
+      fis8 b a4 cis2 |
+    }
+  >>
+}
+
+musicB = {
+  \clef bass
+  \new Voice {
+    \voiceTwo \relative {
+      <fis a cis>8[ <fis a cis>
+      \change Staff = up
+      cis' cis
+      \change Staff = down
+      <fis, a> <fis a>]
+      \showStaffSwitch
+      \change Staff = up
+      dis'4 |
+      \change Staff = down
+      <fis, a cis>4 gis <f a d>2 |
+    }
+  }
+}
+
+\new PianoStaff {
+  <<
+    \context Staff = "up" {
+      \accidentalStyle piano
+      \musicA
+    }
+    \context Staff = "down" {
+      \musicB
+    }
+  >>
+}
+@end lilypond
+
+@item piano-cautionary (piano, de precaución)
+
+@cindex alteracions, piano de precaució, estilo de
+@cindex alteracions, piano de precaució
+@cindex precaució, estilo de alteracions, piano
+@cindex precaució, alteracions de piano de
+@cindex piano de precaució, estilo de alteracions
+@cindex piano de precaució, alteracions
+
+@funindex piano-cautionary
+
+Igual que @code{\accidentalStyle piano} però amb les alteracions
+afegides composades com de precaució.
+
+@lilypond[quote]
+musicA = {
+  <<
+    \relative {
+      cis''8 fis, bes4 <a cis>8 f bis4 |
+      cis2. <c, g'>4 |
+    }
+    \\
+    \relative {
+      ais'2 cis, |
+      fis8 b a4 cis2 |
+    }
+  >>
+}
+
+musicB = {
+  \clef bass
+  \new Voice {
+    \voiceTwo \relative {
+      <fis a cis>8[ <fis a cis>
+      \change Staff = up
+      cis' cis
+      \change Staff = down
+      <fis, a> <fis a>]
+      \showStaffSwitch
+      \change Staff = up
+      dis'4 |
+      \change Staff = down
+      <fis, a cis>4 gis <f a d>2 |
+    }
+  }
+}
+
+\new PianoStaff {
+  <<
+    \context Staff = "up" {
+      \accidentalStyle piano-cautionary
+      \musicA
+    }
+    \context Staff = "down" {
+      \musicB
+    }
+  >>
+}
+@end lilypond
+
+@item neo-modern
+
+@cindex neo-modern, estilo de alteracions
+@cindex alteracions, estilo de, neo-modern
+
+@funindex neo-modern
+
+Aquesta regla reprodueix una pràctica comuna a la música
+contemporània: les alteracions accidentals s'imprimeixen com a
+@code{modern}, però es tornen a imprimir si apareix la mateixa
+nota una altra vegada al mateix compàs (excepte si la nota es
+repeteix immediatament).
+
+@lilypond[quote]
+musicA = {
+  <<
+    \relative {
+      cis''8 fis, bes4 <a cis>8 f bis4 |
+      cis2. <c, g'>4 |
+    }
+    \\
+    \relative {
+      ais'2 cis, |
+      fis8 b a4 cis2 |
+    }
+  >>
+}
+
+musicB = {
+  \clef bass
+  \new Voice {
+    \voiceTwo \relative {
+      <fis a cis>8[ <fis a cis>
+      \change Staff = up
+      cis' cis
+      \change Staff = down
+      <fis, a> <fis a>]
+      \showStaffSwitch
+      \change Staff = up
+      dis'4 |
+      \change Staff = down
+      <fis, a cis>4 gis <f a d>2 |
+    }
+  }
+}
+
+\new PianoStaff {
+  <<
+    \context Staff = "up" {
+      \accidentalStyle neo-modern
+      \musicA
+    }
+    \context Staff = "down" {
+      \accidentalStyle neo-modern
+      \musicB
+    }
+  >>
+}
+@end lilypond
+
+@item neo-modern-cautionary
+
+@cindex neo-modern de precaució, estilo de alteracions
+@cindex alteracions, estilo, neo-moderno de precaució
+
+@funindex neo-modern-cautionary
+
+Aquesta regla és sembla a @code{neo-modern}, però les alteracions
+@q{addicionals} s'imprimeixen com alteracions de precaució (amb
+parèntesis).  També es poden imprimir a una mida diferent
+sobreescrivint la propietat @code{font-size} de l'objecte
+@code{AccidentalCautionary}.
+
+@lilypond[quote]
+musicA = {
+  <<
+    \relative {
+      cis''8 fis, bes4 <a cis>8 f bis4 |
+      cis2. <c, g'>4 |
+    }
+    \\
+    \relative {
+      ais'2 cis, |
+      fis8 b a4 cis2 |
+    }
+  >>
+}
+
+musicB = {
+  \clef bass
+  \new Voice {
+    \voiceTwo \relative {
+      <fis a cis>8[ <fis a cis>
+      \change Staff = up
+      cis' cis
+      \change Staff = down
+      <fis, a> <fis a>]
+      \showStaffSwitch
+      \change Staff = up
+      dis'4 |
+      \change Staff = down
+      <fis, a cis>4 gis <f a d>2 |
+    }
+  }
+}
+
+\new PianoStaff {
+  <<
+    \context Staff = "up" {
+      \accidentalStyle neo-modern-cautionary
+      \musicA
+    }
+    \context Staff = "down" {
+      \accidentalStyle neo-modern-cautionary
+      \musicB
+    }
+  >>
+}
+@end lilypond
+
+@item neo-modern-voice
+
+@cindex neo-modern-voice, estil d'alteració
+@cindex alteracions, estil, neo-modern de veu
+
+@funindex neo-modern-voice
+
+Aquesta regla s'usa per alteracions accidentals sobre diverses
+veus que s'han de llegir per part de músics que toquen una veu,
+així com per músics que toquen totes les veus.  Les alteracions
+s'imprimeixen per a cada veu com amb @code{neo-modern}, però es
+cancel·len per a altres veus que estan al mateix pentagrama
+@code{Staff}.
+
+@lilypond[quote]
+musicA = {
+  <<
+    \relative {
+      cis''8 fis, bes4 <a cis>8 f bis4 |
+      cis2. <c, g'>4 |
+    }
+    \\
+    \relative {
+      ais'2 cis, |
+      fis8 b a4 cis2 |
+    }
+  >>
+}
+
+musicB = {
+  \clef bass
+  \new Voice {
+    \voiceTwo \relative {
+      <fis a cis>8[ <fis a cis>
+      \change Staff = up
+      cis' cis
+      \change Staff = down
+      <fis, a> <fis a>]
+      \showStaffSwitch
+      \change Staff = up
+      dis'4 |
+      \change Staff = down
+      <fis, a cis>4 gis <f a d>2 |
+    }
+  }
+}
+
+\new PianoStaff {
+  <<
+    \context Staff = "up" {
+      \accidentalStyle neo-modern-voice
+      \musicA
+    }
+    \context Staff = "down" {
+      \accidentalStyle neo-modern-voice
+      \musicB
+    }
+  >>
+}
+@end lilypond
+
+@item neo-modern-voice-cautionary
+
+@cindex neo-modern-voice-cautionary, estil de alteracions
+@cindex alteracions, estil, neo-modern-voice-cautionary
+
+@funindex neo-modern-voice-cautionary
+
+Aquesta regla és semblant a @code{neo-modern-voice}, però les
+alteracions addicionals s'imprimeixen com alteracions de
+precaució.
+
+@lilypond[quote]
+musicA = {
+  <<
+    \relative {
+      cis''8 fis, bes4 <a cis>8 f bis4 |
+      cis2. <c, g'>4 |
+    }
+    \\
+    \relative {
+      ais'2 cis, |
+      fis8 b a4 cis2 |
+    }
+  >>
+}
+
+musicB = {
+  \clef bass
+  \new Voice {
+    \voiceTwo \relative {
+      <fis a cis>8[ <fis a cis>
+      \change Staff = up
+      cis' cis
+      \change Staff = down
+      <fis, a> <fis a>]
+      \showStaffSwitch
+      \change Staff = up
+      dis'4 |
+      \change Staff = down
+      <fis, a cis>4 gis <f a d>2 |
+    }
+  }
+}
+
+\new PianoStaff {
+  <<
+    \context Staff = "up" {
+      \accidentalStyle neo-modern-voice-cautionary
+      \musicA
+    }
+    \context Staff = "down" {
+      \accidentalStyle neo-modern-voice-cautionary
+      \musicB
+    }
+  >>
+}
+@end lilypond
+
+@item dodecaphonic
+
+@cindex dodecafònic, estil de alteracions
+@cindex alteracions, estil, dodecafònic
+
+@funindex dodecaphonic
+
+Aquesta regla reflexa una pràctica introduïda pels compositors de
+principis del segle XX, en un intent d'abolir la jerarquia
+entre notes naturals i alterades.  Amb aquest estil, @emph{todas}
+les notes porten alteració, fins i tot becaires.
+
+@lilypond[quote]
+musicA = {
+  <<
+    \relative {
+      cis''8 fis, bes4 <a cis>8 f bis4 |
+      cis2. <c, g'>4 |
+    }
+    \\
+    \relative {
+      ais'2 cis, |
+      fis8 b a4 cis2 |
+    }
+  >>
+}
+
+musicB = {
+  \clef bass
+  \new Voice {
+    \voiceTwo \relative {
+      <fis a cis>8[ <fis a cis>
+      \change Staff = up
+      cis' cis
+      \change Staff = down
+      <fis, a> <fis a>]
+      \showStaffSwitch
+      \change Staff = up
+      dis'4 |
+      \change Staff = down
+      <fis, a cis>4 gis <f a d>2 |
+    }
+  }
+}
+
+\new PianoStaff {
+  <<
+    \context Staff = "up" {
+      \accidentalStyle dodecaphonic
+      \musicA
+    }
+    \context Staff = "down" {
+      \accidentalStyle dodecaphonic
+      \musicB
+    }
+  >>
+}
+@end lilypond
+
+@item dodecaphonic-no-repeat
+
+@cindex estil accidental dodecafònic
+@cindex estil dodecafònic, neo-modern
+
+@funindex dodecaphonic-no-repeat
+
+Com amb l'estil d'alteracions dodecafònic @emph{totes} les notes
+porten una alteració de forma predeterminada, però les alteracions
+se suprimeixen quan hi ha notes repetides immediatament al mateix pentagrama.
+
+@lilypond[quote]
+musicA = {
+  <<
+    \relative {
+      cis''8 fis, bes4 <a cis>8 f bis4 |
+      cis2. <c, g'>4 |
+    }
+    \\
+    \relative {
+      ais'2 cis, |
+      fis8 b a4 cis2 |
+    }
+  >>
+}
+
+musicB = {
+  \clef bass
+  \new Voice {
+    \voiceTwo \relative {
+      <fis a cis>8[ <fis a cis>
+      \change Staff = up
+      cis' cis
+      \change Staff = down
+      <fis, a> <fis a>]
+      \showStaffSwitch
+      \change Staff = up
+      dis'4 |
+      \change Staff = down
+      <fis, a cis>4 gis <f a d>2 |
+    }
+  }
+}
+
+\new PianoStaff {
+  <<
+    \context Staff = "up" {
+      \accidentalStyle dodecaphonic-no-repeat
+      \musicA
+    }
+    \context Staff = "down" {
+      \accidentalStyle dodecaphonic-no-repeat
+      \musicB
+    }
+  >>
+}
+@end lilypond
+
+
+@item dodecaphonic-first
+
+@cindex estil accidental dodecafònic
+@cindex estil dodecafònic, neo-modern
+
+@funindex dodecaphonic-first
+
+Semblant a l'estil d'alteracions dodecafònic, @emph{totes} les
+notes porten una alteració, però sols la primera vegada que es
+troben al compàs.  Les alteracions es recorden sols per a l'octava
+actual però a través de les veus.
+
+@lilypond[quote]
+musicA = {
+  <<
+    \relative {
+      cis''8 fis, bes4 <a cis>8 f bis4 |
+      cis2. <c, g'>4 |
+    }
+    \\
+    \relative {
+      ais'2 cis, |
+      fis8 b a4 cis2 |
+    }
+  >>
+}
+
+musicB = {
+  \clef bass
+  \new Voice {
+    \voiceTwo \relative {
+      <fis a cis>8[ <fis a cis>
+      \change Staff = up
+      cis' cis
+      \change Staff = down
+      <fis, a> <fis a>]
+      \showStaffSwitch
+      \change Staff = up
+      dis'4 |
+      \change Staff = down
+      <fis, a cis>4 gis <f a d>2 |
+    }
+  }
+}
+
+\new PianoStaff {
+  <<
+    \context Staff = "up" {
+      \accidentalStyle dodecaphonic-first
+      \musicA
+    }
+    \context Staff = "down" {
+      \accidentalStyle dodecaphonic-first
+      \musicB
+    }
+  >>
+}
+@end lilypond
+
+
+@item teaching (ensenyament)
+
+@cindex teaching (enseñanza), estilo de alteraciones
+@cindex alteracions, estil teaching (ensenyament)
+
+@funindex teaching
+
+Aquesta regla està pensada per a estudiants, i fa més senzill
+crear automàticament fulls d'escales amb alteracions de
+precaució.  Les alteracions s'imprimeixen com a l'estil
+@code{modern}, però s'afegeixen alteracions de precaució per a
+totes les notes sostingudes o bemolls especificats per l'armadura,
+excepte si la nota es repeteix immediatament.
+
+@lilypond[quote,staffsize=18]
+musicA = {
+  <<
+    \relative {
+      cis''8 fis, bes4 <a cis>8 f bis4 |
+      cis2. <c, g'>4 |
+    }
+    \\
+    \relative {
+      ais'2 cis, |
+      fis8 b a4 cis2 |
+    }
+  >>
+}
+
+musicB = {
+  \clef bass
+  \new Voice {
+    \voiceTwo \relative {
+      <fis a cis>8[ <fis a cis>
+      \change Staff = up
+      cis' cis
+      \change Staff = down
+      <fis, a> <fis a>]
+      \showStaffSwitch
+      \change Staff = up
+      dis'4 |
+      \change Staff = down
+      <fis, a cis>4 gis <f a d>2 |
+    }
+  }
+}
+
+\new PianoStaff {
+  <<
+    \context Staff = "up" {
+      \key fis \minor
+      \accidentalStyle teaching
+      \musicA
+    }
+    \context Staff = "down" {
+      \key fis \minor
+      \accidentalStyle teaching
+      \musicB
+    }
+  >>
+}
+@end lilypond
+
+@item no-reset (sense restabliment)
+
+@cindex alteracions sense restabliment, estil de
+@cindex sense restabliment, estil d'alteracions
+
+@funindex no-reset
+
+És el mateix que @code{default} però amb alteracions que duren
+@q{per sempre} i no sols dins del mateix compàs:
+
+@lilypond[quote]
+musicA = {
+  <<
+    \relative {
+      cis''8 fis, bes4 <a cis>8 f bis4 |
+      cis2. <c, g'>4 |
+    }
+    \\
+    \relative {
+      ais'2 cis, |
+      fis8 b a4 cis2 |
+    }
+  >>
+}
+
+musicB = {
+  \clef bass
+  \new Voice {
+    \voiceTwo \relative {
+      <fis a cis>8[ <fis a cis>
+      \change Staff = up
+      cis' cis
+      \change Staff = down
+      <fis, a> <fis a>]
+      \showStaffSwitch
+      \change Staff = up
+      dis'4 |
+      \change Staff = down
+      <fis, a cis>4 gis <f a d>2 |
+    }
+  }
+}
+
+\new PianoStaff {
+  <<
+    \context Staff = "up" {
+      \accidentalStyle no-reset
+      \musicA
+    }
+    \context Staff = "down" {
+      \accidentalStyle no-reset
+      \musicB
+    }
+  >>
+}
+@end lilypond
+
+@item forget (oblit)
+
+@cindex oblit, estil de alteracions
+@cindex alteració, estil de, oblit
+
+@funindex forget
+
+És l'oposat a @code{sense restabliment}: Les alteracions no es
+recorden en absolut: d'aquí que totes les alteracions es gravin en
+relació a l'armadura de la tonalitat, sense que es vegin afectades
+pel que hi ha abans.
+
+
+@lilypond[quote]
+musicA = {
+  <<
+    \relative {
+      cis''8 fis, bes4 <a cis>8 f bis4 |
+      cis2. <c, g'>4 |
+    }
+    \\
+    \relative {
+      ais'2 cis, |
+      fis8 b a4 cis2 |
+    }
+  >>
+}
+
+musicB = {
+  \clef bass
+  \new Voice {
+    \voiceTwo \relative {
+      <fis a cis>8[ <fis a cis>
+      \change Staff = up
+      cis' cis
+      \change Staff = down
+      <fis, a> <fis a>]
+      \showStaffSwitch
+      \change Staff = up
+      dis'4 |
+      \change Staff = down
+      <fis, a cis>4 gis <f a d>2 |
+    }
+  }
+}
+
+\new PianoStaff {
+  <<
+    \context Staff = "up" {
+      \accidentalStyle forget
+      \musicA
+    }
+    \context Staff = "down" {
+      \accidentalStyle forget
+      \musicB
+    }
+  >>
+}
+@end lilypond
+@end table
+
+@seealso
+Fragments de codi:
+@rlsr{Pitches}.
+
+Referècia de funcionament interno:
+@rinternals{Accidental},
+@rinternals{Accidental_engraver},
+@rinternals{GrandStaff},
+@rinternals{PianoStaff},
+@rinternals{Staff},
+@rinternals{AccidentalSuggestion},
+@rinternals{AccidentalPlacement},
+@rinternals{accidental-suggestion-interface}.
+
+@cindex alteracions i notes simultànies
+@cindex simultànies, notes i alteracions
+@cindex alteracions en acordes
+@cindex acordes, alteracions dins de
+
+@knownissues
+Les notes simultànies no es tenen en compte per a la determinació
+automàtica de les alteracions accidentals; sols es consideren les
+notes anteriors i l'armadura de la tonalitat.  Pot ser necessari
+forçar les alteracions accidentals amb with@tie{}@code{!}
+o@tie{}@code{?} quan la mateixa nota, amb al mateix nom, aparegui
+simultàniament amb diferents alteracions, com a @samp{<f! fis!>}.
+
+La cancel·lació de precaució d'alteracions es fa mirant el compàs
+previ.  Malgrat això, al bloc @code{\alternative} que segueix a
+una secció de repetició de primera i segona vegada @code{\repeat
+volta N}, s'esperaria que la cancel·lació es calculés utilitzant
+el compàs previ @emph{que s'ha tocat}, no el compàs previ
+@emph{que s'ha imprès}.  A l'exemple següent al Do natural de la
+casella de segona vegada no li cal becaire:
+
+@lilypond[quote]
+{
+  \accidentalStyle modern
+  \time 2/4
+  \repeat volta 2 {
+    c'2
+  }
+  \alternative {
+     cis'
+     c'
+  }
+}
+@end lilypond
+
+Es pot usar la següent solució del problema: definir una funció
+que canviï localment l'estil d'alteracions a @code{forget}:
+
+@lilypond[verbatim,quote]
+forget = #(define-music-function (music) (ly:music?) #{
+  \accidentalStyle forget
+  #music
+  \accidentalStyle modern
+#})
+{
+  \accidentalStyle modern
+  \time 2/4
+  \repeat volta 2 {
+    c'2
+  }
+  \alternative {
+     cis'
+     \forget c'
+  }
+}
+@end lilypond
+
+@node Tessitura
+@unnumberedsubsubsec Tessitura
+@translationof Ambitus
+
+@cindex ambitus
+@cindex rang de altures
+@cindex tessitura
+
+El terme @emph{ambitus} o àmbit denota el rang de notes que abasta
+una veu donada a una part musical.  També pot denotar el marge de
+notes que és capaç de tocar un determinat instrument musical.  Els
+àmbits s'imprimeixen a les parts vocals de tal manera que els
+intèrprets puguin determinar amb facilitat si compleixen amb les
+seves pròpies possibilitats.
+
+Els àmbits es presenten al començament de la peça junt a la clau
+inicial.  El rang s'especifica gràficament mitjançant dos caps de
+nota que representen a les notes inferior i superior.  Sols
+s'imprimeixen alteracions si no formen part de l'armadura de la
+tonalitat.
+
+@lilypond[verbatim,quote]
+\layout {
+  \context {
+    \Voice
+    \consists "Ambitus_engraver"
+  }
+}
+
+\relative {
+  aes' c e2
+  cis,1
+}
+@end lilypond
+
+@snippets
+@lilypondfile[verbatim,quote,texidoc,doctitle]
+{adding-ambitus-per-voice.ly}
+
+@lilypondfile[verbatim,quote,texidoc,doctitle]
+{ambitus-with-multiple-voices.ly}
+
+@lilypondfile[verbatim,quote,texidoc,doctitle]
+{changing-the-ambitus-gap.ly}
+
+@seealso
+Glossri musical:
+@rglos{ambitus}.
+
+Fragments de codi:
+@rlsr{Pitches}.
+
+Referència de funcionament interno:
+@rinternals{Ambitus_engraver},
+@rinternals{Voice},
+@rinternals{Staff},
+@rinternals{Ambitus},
+@rinternals{AmbitusAccidental},
+@rinternals{AmbitusLine},
+@rinternals{AmbitusNoteHead},
+@rinternals{ambitus-interface}.
+
+@knownissues
+No s'efectua un tractament de les possibles col·lisions en cas de
+diverses indicacions d'àmbit simultànies a veus diferents.
+
+@node Cap de les notes
+@subsection Cap de les notes
+@translationof Note heads
+
+Aquesta secció proposa formes d'alterar els caps de les figures.
+
+@menu
+* Caps de nota especials::
+* Caps de notes de Notació Fàcil::
+* Caps de notes amb formes diverses::
+* Improvisació::
+@end menu
+
+@node Caps de nota especials
+@unnumberedsubsubsec Caps de nota especials
+@translationof Special note heads
+
+@cindex figura, cap de la
+@cindex nota, cap especial de
+@cindex nota, cap de, en aspes
+@cindex nota, cap de, en rombe
+@cindex nota, cap de, en parlato
+@cindex nota, cap de, harmònics
+@cindex nota, cap de, guitarra
+@cindex especials, caps de figura
+@cindex aspes, caps de nota
+@cindex rombe, caps de nota
+@cindex parlato, caps de nota
+@cindex harmònics, caps de nota
+@cindex guitarra, caps de nota
+@cindex nota, cap de, estils
+@cindex estils de cap de nota
+
+@funindex cross
+
+Es pot modificar l'aparença del cap de les notes:
+
+@lilypond[verbatim,quote]
+\relative c'' {
+  c4 b
+  \override NoteHead.style = #'cross
+  c4 b
+  \revert NoteHead.style
+  a b
+  \override NoteHead.style = #'harmonic
+  a b
+  \revert NoteHead.style
+  c4 d e f
+}
+@end lilypond
+
+Per veure totes els estils de caps de les notes, consulteu
+@rusernamed{Note head styles,Estils de caps de nota}.
+
+L'estil @code{cross} (aspes) es fa servir per representar una
+àmplia varietat d'intencions musicals.  Les següent ordres
+genèriques predefinides modifiquen la forma del cap de les figures
+tant al context del pentagrama normal com al de tabulatura, i es
+poden fer servir per representar qualsevol significat musical:
+
+@lilypond[verbatim,quote]
+\relative {
+  c''4 b
+  \xNotesOn
+   a b c4 b
+  \xNotesOff
+  c4 d
+}
+@end lilypond
+
+La forma de funció musical d'aquesta ordre predefinida es pot usar
+dins i fora dels acords per generar caps de nota en aspa, tant al
+context de pentagrama normal com al de tabulatura:
+
+@lilypond[verbatim,quote]
+\relative {
+  c''4 b
+  \xNote { e f }
+  c b < g \xNote c f > b
+}
+@end lilypond
+
+Como sinònims de @code{\xNote}, @code{\xNotesOn} i
+@code{\xNotesOff}, se poden usar @code{\deadNote},
+@code{\deadNotesOn} i @code{\deadNotesOff}.  El terme
+@notation{dead note} (nota morta) s'utilitza habitualment per part
+dels guitarristes.
+
+També hi ha una abreviatura semblant per a les formes en rombe:
+
+@lilypond[verbatim,quote]
+\relative c'' {
+  <c f\harmonic>2 <d a'\harmonic>4 <c g'\harmonic> f\harmonic
+}
+@end lilypond
+
+@predefined
+@code{\harmonic},
+@code{\xNotesOn},
+@code{\xNotesOff},
+@code{\xNote}.
+@endpredefined
+
+@seealso
+Fragments de codi:
+@rlsr{Pitches}.
+
+Referència de la notació:
+@rusernamed{Note head styles,Estils de caps de nota},
+@rusernamed{Chorded notes,Notes en acord},
+@rusernamed{Indicating harmonics and dampened notes,Indicació d'harmònics y notes tapades}.
+
+Referència de funcionament interno:
+@rinternals{note-event},
+@rinternals{Note_heads_engraver},
+@rinternals{Ledger_line_engraver},
+@rinternals{NoteHead},
+@rinternals{LedgerLineSpanner},
+@rinternals{note-head-interface},
+@rinternals{ledger-line-spanner-interface}.
+
+
+@node Caps de notes de Notació Fàcil
+@unnumberedsubsubsec Caps de notes de Notació Fàcil
+@translationof Easy notation note heads
+
+@cindex Hal Leonard
+@cindex principiants, música per a
+@cindex fàcil, notació, caps de nota de
+@cindex música para principiants
+@cindex notes, caps de, estudio
+@cindex notes, caps de, notació simplificada
+@cindex notes, caps de, para practicar
+@cindex simplificada, notació
+
+@funindex \easyHeadsOn
+@funindex \easyHeadsOff
+
+Les notes amb cap de @q{notació facilitada} tenen el nom de la
+nota (en angles) dins del cap.  S'usen a la música per a
+principiants.  Perquè que les lletres siguin llegibles, s'han
+d'imprimir en una mida gran de tipus de lletra.  Per imprimir amb
+un tipus de lletra més gran, vegeu
+@rusernamed{Setting the staff size,Establiment de la mida del pentagrama}.
+
+@lilypond[verbatim,quote]
+#(set-global-staff-size 26)
+\relative c' {
+  \easyHeadsOn
+  c2 e4 f
+  g1
+  \easyHeadsOff
+  c,1
+}
+@end lilypond
+
+@predefined
+@code{\easyHeadsOn},
+@code{\easyHeadsOff}.
+@endpredefined
+
+@snippets
+@lilypondfile[verbatim,quote,texidoc,doctitle]
+{numbers-as-easy-note-heads.ly}
+
+@seealso
+Referència de la notació:
+@rusernamed{Setting the staff size,Establiment de la mida del pentagrama}.
+
+Fragments de codi:
+@rlsr{Pitches}.
+
+Referència de funcionament interno:
+@rinternals{note-event},
+@rinternals{Note_heads_engraver},
+@rinternals{NoteHead},
+@rinternals{note-head-interface}.
+
+
+@node Caps de notes amb formes diverses
+@unnumberedsubsubsec Caps de notes amb formes diverses
+@translationof Shape note heads
+
+@cindex notes, caps de, con formes
+@cindex formes, notes con
+
+@cindex Aiken, caps de nota amb forma
+@cindex arpa sacra, caps de nota amb forma
+@cindex Southern Harmony, caps de nota amb forma
+@cindex Funk, caps de nota amb forma
+@cindex Harmonica Sacra, caps de nota amb forma
+@cindex Christian Harmony, caps de nota amb forma
+@cindex Walker, caps de nota amb forma
+
+@cindex notes, caps de, Aiken
+@cindex notes, caps de, arpa sacra
+@cindex notes, caps de, Southern Harmony
+@cindex notes, caps de, Funk
+@cindex notes, caps de, Harmonica Sacra
+@cindex notes, caps de, Christian Harmony
+@cindex notes, caps de, Walker
+
+@funindex \aikenHeads
+@funindex \sacredHarpHeads
+@funindex \southernHarmonyHeads
+@funindex \funkHeads
+@funindex \walkerHeads
+
+A la notació de caps amb forma, la forma del cap correspon a la
+funció harmònica d'una nota dins de l'escala.  Aquesta notació es
+va fer popular als llibres americans de cançons durant el segle
+XIX.  Els caps de nota amb formes es poden produir amb els estils
+@q{Arpa Sacra}, @q{Southern Harmony}, Funk (Harmonica Sacra),
+Walker i Aiken @q{(Christian Harmony)}:
+
+@lilypond[verbatim,quote]
+\relative c'' {
+  \aikenHeads
+  c, d e f g2 a b1 c \break
+  \sacredHarpHeads
+  c,4 d e f g2 a b1 c \break
+  \southernHarmonyHeads
+  c,4 d e f g2 a b1 c \break
+  \funkHeads
+  c,4 d e f g2 a b1 c \break
+  \walkerHeads
+  c,4 d e f g2 a b1 c \break
+}
+@end lilypond
+
+@funindex \key
+@funindex \aikenHeadsMinor
+@funindex \sacredHarpHeadsMinor
+@funindex \southernHarmonyHeadsMinor
+@funindex \funkHeadsMinor
+@funindex \walkerHeadsMinor
+
+Les formes es determinen en funció del grau de l'escala, on la
+tònica està determinada per l'ordre @code{\key}. Quan s'escriu en
+un to menor, la nota de l'escala es pot determinar a partir del
+relatiu major:
+
+@lilypond[verbatim,quote]
+\relative c'' {
+  \key a \minor
+  \aikenHeads
+  a b c d e2 f g1 a \break
+  \aikenHeadsMinor
+  a,4 b c d e2 f g1 a \break
+  \sacredHarpHeadsMinor
+  a,2 b c d \break
+  \southernHarmonyHeadsMinor
+  a2 b c d \break
+  \funkHeadsMinor
+  a2 b c d \break
+  \walkerHeadsMinor
+  a2 b c d \break
+}
+@end lilypond
+
+@predefined
+@code{\aikenHeads},
+@code{\aikenHeadsMinor},
+@code{\funkHeads},
+@code{\funkHeadsMinor},
+@code{\sacredHarpHeads},
+@code{\sacredHarpHeadsMinor},
+@code{\southernHarmonyHeads},
+@code{\southernHarmonyHeadsMinor},
+@code{\walkerHeads},
+@code{\walkerHeadsMinor}.
+@endpredefined
+
+@snippets
+@lilypondfile[verbatim,quote,texidoc,doctitle]
+{applying-note-head-styles-depending-on-the-step-of-the-scale.ly}
+
+Per veure tots els estils de formes de cap de nota, consulteu
+@rusernamed{Note head styles,Estils de caps de nota},
+
+@seealso
+Fragments de codi:
+@rlsr{Pitches}.
+
+Referència de la notació:
+@rusernamed{Note head styles,Estils de caps de nota},
+
+Referencia de funcionament interno:
+@rinternals{note-event},
+@rinternals{Note_heads_engraver},
+@rinternals{NoteHead},
+@rinternals{note-head-interface}.
+
+
+@node Improvisació
+@unnumberedsubsubsec Improvisació
+@translationof Improvisation
+
+@cindex improvisació
+@cindex barrades, capss de nota
+@cindex notes, caps de, improvisació
+@cindex notes, caps de, barrades
+
+@funindex \improvisationOn
+@funindex \improvisationOff
+
+La improvisació es denota a vegades mitjançant caps de nota en
+forma de barra inclinada, on l'executant pot escollir qualsevol
+nota però amb el ritme especificat.  Aquests cap de nota es creen
+així:
+
+@lilypond[verbatim,quote]
+\new Voice \with {
+  \consists "Pitch_squash_engraver"
+} \relative {
+  e''8 e g a a16( bes) a8 g
+  \improvisationOn
+  e8 ~
+  2 ~ 8 f4 f8 ~
+  2
+  \improvisationOff
+  a16( bes) a8 g e
+}
+@end lilypond
+
+@predefined
+@code{\improvisationOn},
+@code{\improvisationOff}.
+@endpredefined
+
+@seealso
+Fragments de codi:
+@rlsr{Pitches}.
+
+Referència de funcionament interno:
+@rinternals{Pitch_squash_engraver},
+@rinternals{Voice},
+@rinternals{RhythmicStaff}.
index e84c9e619b0b7e990427f52b122d32e6ba03bf66..29701cb600d60bd57db8cea4aaf87405c1e56707 100644 (file)
@@ -16,7 +16,7 @@ td { border: 1px solid black; text-align: center; }
 
 @end html
 @end ifhtml
-@emph{Actualitzat el Sat Jul  2 15:06:05 UTC 2016
+@emph{Actualitzat el Sun Aug  7 13:59:13 UTC 2016
 }
 @multitable @columnfractions  0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667
 
@@ -57,7 +57,7 @@ parcialment
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab Walter Garcia-Fontes
 @tab 
 @tab 
@@ -219,6 +219,126 @@ parcialment
 @end multitable
 
 
+@multitable @columnfractions  0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667
+
+@headitem
+Referència de la notació del GNU LilyPond
+@tab Traductors
+@tab Revisors
+@tab Traduït
+@tab Actualitzat
+@tab Més inf.
+@item
+Títols de secció
+@*
+326
+@tab Walter Garcia-Fontes
+@tab 
+@tab 
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">si</span>
+@end html
+@end ifhtml
+@ifnothtml
+si
+@end ifnothtml
+@tab 
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">si</span>
+@end html
+@end ifhtml
+@ifnothtml
+si
+@end ifnothtml
+@tab pre-GDP
+@item
+LilyPond --- \TITLE\
+@*
+1138
+@tab Walter Garcia-Fontes
+@tab 
+@tab 
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">si</span>
+@end html
+@end ifhtml
+@ifnothtml
+si
+@end ifnothtml
+@tab 
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">si</span>
+@end html
+@end ifhtml
+@ifnothtml
+si
+@end ifnothtml
+@tab pre-GDP
+@item
+1 Notació musical
+@*
+91
+@tab Walter Garcia-Fontes
+@tab 
+@tab 
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">si</span>
+@end html
+@end ifhtml
+@ifnothtml
+si
+@end ifnothtml
+@tab 
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">si</span>
+@end html
+@end ifhtml
+@ifnothtml
+si
+@end ifnothtml
+@tab pre-GDP
+@item
+1.1 Altures
+@*
+5224
+@tab Walter Garcia-Fontes
+@tab 
+@tab 
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">si</span>
+@end html
+@end ifhtml
+@ifnothtml
+si
+@end ifnothtml
+@tab 
+@ifhtml
+
+@html
+<span style="background-color: #25fe1f">parcialment</span>
+@end html
+@end ifhtml
+@ifnothtml
+parcialment
+@end ifnothtml
+@tab pre-GDP
+@end multitable
+
+
 @multitable @columnfractions  0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667
 
 @headitem
@@ -258,7 +378,7 @@ parcialment
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab Walter Garcia-Fontes
 @tab 
 @tab 
@@ -356,7 +476,7 @@ si
 @ifhtml
 
 @html
-<span style="background-color: #6fff29">parcialment</span>
+<span style="background-color: #76fe2a">parcialment</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -395,17 +515,17 @@ si
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">si</span>
+<span style="background-color: #d587ff">N/D</span>
 @end html
 @end ifhtml
 @ifnothtml
-si
+N/D
 @end ifnothtml
 @tab pre-GDP
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab Walter Garcia-Fontes
 @tab 
 @tab 
index 7d4f3b9abe4c9ed5ccb9e67c69bcc65becca80fe..bcf55d0963d90008df965ad59b253f7e58ee114a 100644 (file)
@@ -435,7 +435,7 @@ cada pàgina de sortida.  Es recomana instal·lar el tipus de lletra
 Century Schoolbook, que està inclòs a la instal·lació del
 LilyPond, per a un renderitzat òptim.  Sota l'UNIX, bastarà amb
 que copieu aquests fitxers de tipus de lletra del directori del
-Lilypond (normalment @file{/usr/share/lilypond/VERSION/fonts/otf/})
+LilyPond (normalment @file{/usr/share/lilypond/VERSION/fonts/otf/})
 al directori @file{~/.fonts/}.  La sortida @code{SVG} hauria de
 ser compatible amb qualsevol editor o client de SVG.  També hi ha
 una opció @code{svg-woff} (vegeu més avall) per usar els fitxers
index 0e4dc47cd532c7a395f8a4e458765e3caa049545..0d77beeaf8a63f8241472fc34829c0fc4d4816ed 100644 (file)
@@ -74,7 +74,7 @@ versió del LilyPond fèieu servir.
 
 @item @strong{Incloeu comprovacions}:
 @rusernamed{Bar and bar number checks,Comprovació de compàs i de número de compàs},
-@rusernamed{Octave checks,Comprovació d'octava}.
+@ruser{Comprovació d'octava}.
 Si incloeu comprovacions de tant en tant, en cas que cometeu un
 error podreu localitzar-lo molt més ràpidament.  Amb quina
 freqüència és @q{de tant en tant}?  Depèn de la complexitat de la
index e87dc7fb078beb1c249fe0c62d49959fcdb2bfef..e271246048c50ea8cd9bfb84004804805433286f 100644 (file)
@@ -56,16 +56,16 @@ Free Documentation License''.
 @c expected to be found in lilypond/ subdirectory.
 @dircategory GNU LilyPond: el gravador de música
 @direntry
-* Manual d'aprenentatge del Lilypond:(lilypond-learning). Comenceu per aquí.
+* Manual d'aprenentatge del LilyPond:(lilypond-learning). Comenceu per aquí.
 * Glosari musical: (music-glossary).                 Per a usuaris de parla no anglesa
-* LilyPond: (lilypond-notation).                      Referència de la notació amb el Lilypond.
+* LilyPond: (lilypond-notation).                      Referència de la notació amb el LilyPond.
 * Fragments de codi del LilyPond: (lilypond-snippets). Consells, trucs i exemples curts.
 * Referència de funcionament intern: (lilypond-internals). Definicions pera a la construcció de trucs.
 * Utilització del prrograma: (lilypond-usage). Instal·lació i execució de les aplicacions
 * Pàgina web: (lilypond-web).    Vista prèvia de la nova pàgina.
-* lilypond: (lilypond-usage)Executar el Lilypond.   Invocar el programa LilyPond.
+* lilypond: (lilypond-usage)Executar el LilyPond.   Invocar el programa LilyPond.
 * abc2ly: (lilypond-usage)Invocació d'abc2ly.      Importació d'ABC.
-* convert-ly: (lilypond-usage)Actualització de fitxers mitjançant convert-ly. Versions antigues del Lilypond.
+* convert-ly: (lilypond-usage)Actualització de fitxers mitjançant convert-ly. Versions antigues del LilyPond.
 * etf2ly: (lilypond-usage)Invocar etf2ly.      Importació del Finale.
 * lilypond-book: (lilypond-usage)LilyPond-book. Intergrar text i música.
 * midi2ly: (lilypond-usage)Invocar midi2ly.    Importació de MIDI.
@@ -119,14 +119,14 @@ Per al LilyPond versió @version{}
 @divId{quickSummary}
 @subheading ¿Què és el LilyPond?
 
-El Lilypond és un programa de gravat musical
+El LilyPond és un programa de gravat musical
 (tipografia musical o edició de partitures),
 consagrat a la producció de partitures de la
 qualitat més alta possible. Introdueix l'estètica
 de la música gravada de la forma tradicional
 a les partitures impreses mijtançant l'ordinador.
-Lilypond és programari lliure i forma part del
-@uref{http://gnu.org,Projecte GNU}.
+LilyPond és programari lliure i forma part del
+@uref{http://www.gnu.org/home.ca.html,Projecte GNU}.
 
 
 @divClass{align-right}
index 8264c97144c5660539fdaaf97eed37ceb8fe47a3..c8eba165de0035dc2483376631c2510a8a37300c 100644 (file)
@@ -201,7 +201,7 @@ fòrum d'holandès}
 @divClass{column-right-top}
 @subheading Esteu sempre informat
 
-@subsubheading LilyPond Report (l'Informe Lilypond)
+@subsubheading LilyPond Report (l'Informe LilyPond)
 
 La manera més fàcil d'estar en contacte és llegir el butlletí de
 la nostra comunitat, l'Informe LilyPond:
index 6348f9898943daf0da6054b4f37ad4541d5c350e..cd7236fc4ff13d9efcaa66304decf1a6a1ad690e 100644 (file)
@@ -33,7 +33,7 @@ les millors tradicions del gravat musical clàssic.
 @divClass{link-headings}
 
 @divClass{column-left-top}
-@subheading Què fa el Lilypond
+@subheading Què fa el LilyPond
 
 @itemize
 
@@ -86,14 +86,14 @@ les millors tradicions del gravat musical clàssic.
 @c menu. -JM
 @divClass{hide}
 @menu
-* Possibilitats::               Què pot fer el Lilypond?
+* Possibilitats::               Què pot fer el LilyPond?
 * Exemples::                    Vull veure alguna música!
 * Llibertat::                   La llibertat i la GPL.
 * Rerefons::                    Estètica computacional.
 * Produccions::                 Ús del LilyPond a la vida real.
-* Ressenyes::                   Què diu la gent sobre el Lilypond?
+* Ressenyes::                   Què diu la gent sobre el LilyPond?
 * Entrada de text::             Escriviu música com si fos @emph{text}?!
-* Entorns millorats::           Altres formes de treballar amb el Lilypond.
+* Entorns millorats::           Altres formes de treballar amb el LilyPond.
 @end menu
 @divEnd
 
@@ -116,7 +116,7 @@ empleat milers d'hores a desenvolupar un programa de gravat
 musical que produeix com a resultat música impresa de forma
 bella. Tots els ajustos d'estil del LilyPond, el disseny dels
 tipus de lletra i els algoritmes s'han inspirat en la millor
-música gravada a mà. La sortida del Lilypond té el mateix aspecte
+música gravada a mà. La sortida del LilyPond té el mateix aspecte
 robust, equilibrat i elegant que les partitures clàssiques millor
 gravades. Tot això s'explica amb detall a la nostra @ressaynamed{Essay,Monografia}.
 
@@ -163,7 +163,7 @@ amb alguna dificultat manual que no poden teclejar o usar un ratolí
 d'ordinador, poden usar programari de reconeixement de veu per
 editar els fitxers del LilyPond. Fins i tot les persones totalment
 cegues poden usar lectors de pantalla per escriure els fitxers del
-Lilypond (una tasca impossible als programes d'edició de
+LilyPond (una tasca impossible als programes d'edició de
 partitures basats en gràfics).
 
 @subsubheading Disseny ampliable
@@ -207,7 +207,7 @@ que els problemes es resolen amb rapidesa.
 @subsubheading Editors millorats
 
 Diversos desenvolupadors que són a l'hora usuaris actius del
-Lilypond han escrit eines orientades específicament a fer més
+LilyPond han escrit eines orientades específicament a fer més
 fàcil i efectiu el procés d'editar fitxers del LilyPond. Per veure
 alguns exemples, consulteu @ref{Entorns millorats}.
 
@@ -378,7 +378,7 @@ provar el LilyPond, llegiu primer el que tenim a dir-vos sobre la
 @divClass{column-center-top}
 @subheading Software lliure
 
-@uref{http://www.gnu.org/, GNU} El LilyPond està escrit i
+@uref{http://www.gnu.org/home.ca.html, GNU} El LilyPond està escrit i
 mantingut per una comunitat d'entusiastes. Està publicat sota la
 @ref{GPL, Llicència General Pública de GNU} i la @ref{FDL,
 Llicència de Documentació Lliure de GNU}, donant a tothom la
@@ -639,7 +639,7 @@ Montpellier}, a França.
 El @uref{http://www.mutopiaproject.org/index.html, Projecte Mutopia}
 inclou més de 1500 partitures de música clàssica per a la seva
 descàrrega lliure, i és el principal aparador de partitures del
-Lilypond.
+LilyPond.
 
 @c don't make this "Mutopia" a link, since that looks silly.
 @item
@@ -802,7 +802,7 @@ partitures produïdes pel LilyPond son excepcionalment boniques
 Juliol/agost de 2004
 
 Dave Phillips va escriure un article introductori per a Linux
-Journal At the Sounding edge: Lilypond,
+Journal At the Sounding edge: LilyPond,
 @uref{http://www.linuxjournal.com/article/7657, primera} i
 @uref{http://www.linuxjournal.com/article/7719, segona} part.
 
@@ -820,7 +820,7 @@ Febrer de 2004
 
 El cantant de jazz Gail Selkirk escriu sobre
 @uref{http://www.songbirdofswing.com/editorial_page/lilypond/,
-Submergir-se a l'estany dels nenúfars (Lily Pond)}.
+Submergir-se a l'estany dels nenúfars (LilyPond)}.
 @qq{@dots{} pot fer fulls guia d'acords o parts orquestrals
 completes, i el resultat pot ser increïble.}
 @uref{http://www.computermusic.co.uk/, Computer Music Special}, número
@@ -950,7 +950,7 @@ bellesa. Això és massa modèstia!
 (@dots{}) a mesura que el LilyPond millora contínuament i observo
 com es fan les coses amb el Scheme, tinc cada cop menys
 frustracions. De totes maneres el que vull dir és: gràcies per
-donar-nos el Lilypond, és realment bo.}
+donar-nos el LilyPond, és realment bo.}
 @divEnd
 
 
@@ -1132,7 +1132,7 @@ directa d'una partitura gràfica.  Per veure més informació, consulteu
 @divClass{column-center-bottom}
 @subheading I ara què?
 
-Ja està preparat per @ref{Descàrrega, Descarregar el LilyPond}.
+Ja teniu la preparació per @ref{Descàrrega, Descarregar el LilyPond}.
 Encara no esteu convençut? Llegiu quelcom sobre els entorns
 d'edició a
 @ref{Entorns millorats}.
@@ -1419,9 +1419,9 @@ teclat numèric que produeix notes del LilyPond.
 @divClass{column-center-bottom}
 @subheading I ara què?
 
-Ja esteu preparat per a @ref{Descàrrega, Descarregar el LilyPond}.
+Ja teniu la preparació per @ref{Descàrrega, Descarregar el LilyPond}.
 
-Encara no esteu convençut? Molts compositors, músics i directors
+Encara no us convenç? Molts compositors, músics i directors
 d'orquestra han après a escriure música en el nostre format
 d'entrada.  Els usuaris amb experiència fins i tot que poden
 introduir una partitura completa al LilyPond més ràpid que amb un
index 43b19032d6f0163e3938c0abf8d01fdd71e024f0..32ef0021b71b74227c96a5f9ae215a4649bb0f39 100644 (file)
@@ -20,7 +20,7 @@
 
 @divClass{heading-center}
 @ifclear web_version
-@heading Manuals de LilyPond @version
+@heading Manuals del LilyPond @version
 @end ifclear
 @ifset web_version
   @heading Manuals del LilyPond @versionStable
@@ -133,7 +133,7 @@ Versions estables anteriors i versió actual com un fitxer comprimit.
 estat del procés de traducció per a lectors no anglòfons.
 
 @item
-@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository (el magatzem de fragments de codi del Lilypond)}:
+@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository (el magatzem de fragments de codi del LilyPond)}:
 exemples, consells, i trucs creats pels usuaris.
 
 @item
@@ -291,7 +291,7 @@ Aquest llibre explica totes les instruccions del LilyPond que
 produeixen notació musical.
 
 @warning{La Referència de la Notació suposa que el lector coneix
-el material bàsica que apareix al Manual d'Aprenentatge i té
+el material bàsic que apareix al Manual d'Aprenentatge i té
 familiaritat amb els termes musicals anglesos que es presenten al
 Glossari Musical.}
 
@@ -340,7 +340,7 @@ seva lectura abans d'afrontar projectes grans.
 @divClass{column-left-top}
 @subheading Fragments
 
-Aquest manual presenta un conjunt seleccionat de fragmentes de
+Aquest manual presenta un conjunt seleccionat de fragments de
 codi del LilyPond extrets del
 @uref{http://lsr@/.dsi@/.unimi@/.it,Repositori de fragments de
 codi del LilyPond} (LSR).  Tots els fragments es troben al domini
index 8fe5d07c2868717894167faeee282e125a2f6a9a..0a0869026cf04c806f82539f77ccf0e354c2b485 100644 (file)
@@ -30,7 +30,7 @@ l'ús de la versió 2.18.
 @newsEnd
 
 @newsItem
-@subsubheading Lilypond 2.18.2 llençat el @emph{23 de març de 2014}!
+@subsubheading LilyPond 2.18.2 llençat el @emph{23 de març de 2014}!
 
 Estem orgullosos d'anunciar el llançament del GNU LilyPond
 2.18.2.  El LilyPond és un programa de gravat musical dedicat a la
@@ -73,7 +73,7 @@ aportant una contribució a la campanya Indiegogo [5]!
 
 
 @newsItem
-@subsubheading Lilypond 2.18.0 llençat el @emph{29 de Desembre de 2013}!
+@subsubheading LilyPond 2.18.0 llençat el @emph{29 de Desembre de 2013}!
 
 Estem orgullosos d'anunciar el llançament del GNU LilyPond
 2.18.0. El LilyPond és un programa de gravat musical dedicat a la
@@ -216,7 +216,7 @@ aquesta versió.
 @newsEnd
 
 @newsItem
-@subsubheading Lilypond 2.16.0 llençat el @emph{24 d'agost de 2012}!
+@subsubheading LilyPond 2.16.0 llençat el @emph{24 d'agost de 2012}!
 
 Estem orgullosos d'anunciar el llançament del GNU LilyPond
 2.16.1. El LilyPond és un programa de gravat musical, dedicat a
index fb1a77f6331bf83b72dc992a31a1bf3a05c7ecdc..c9315d59da68d24aa633bbc5c0e0fa2c70039d3c 100644 (file)
@@ -61,6 +61,25 @@ which scares away people.
 
 @end ignore
 
+@item
+Slurs and phrasing slurs may now be started from individual notes
+in a chord.  Several simultanous slurs per @code{Voice} need to be
+distinguished by @code{spanner-id} setting.
+
+@item
+The music and grob property @code{spanner-id} for distinguishing
+simultaneous slurs and phrasing slurs has been changed from a
+string to a @q{key}, a non-negative integer or symbol.
+
+@item
+There is a new command @code{\=} for specifying the
+@code{spanner-id} for simultaneous slurs and phrasing slurs.
+@lilypond[verbatim,quote]
+\fixed c' {
+  <c~ f\=1( g\=2( >2 <c e\=1) a\=2) >
+}
+@end lilypond
+
 @item
 Blocks introduced with @code{\header} can be stored in variables
 and used as arguments to music and scheme functions and as the
index ff5ba338c447bb0450ed4e84efbc8dcac78ff347..1f23d90fae7b5c98050b8bdf4aef5824319afbc4 100644 (file)
@@ -28,11 +28,11 @@ procedures}.
 629   web.texi
 5815  web/introduction.itexi
 1158  web/download.itexi
-1139  macros.itexi
+1138  macros.itexi
 9     po/lilypond-doc.pot (translate to po/@var{MY_LANGUAGE}.po)
 0     search-box.ihtml
 ---   lilypond-texi2html.init (section TRANSLATIONS)
-8750  total
+8749  total
 
 -2- Tutorial
 1314  web/manuals.itexi
@@ -58,8 +58,8 @@ procedures}.
 -5- Notation reference
 326   notation.tely
 91    notation/notation.itely -- Musical notation
-5169  notation/pitches.itely
-6795  notation/rhythms.itely
+5224  notation/pitches.itely
+6822  notation/rhythms.itely
 1798  notation/expressive.itely
 1288  notation/repeats.itely
 2919  notation/simultaneous.itely
@@ -67,22 +67,22 @@ procedures}.
 1477  notation/editorial.itely
 2754  notation/text.itely
 81    notation/specialist.itely -- Specialist notation
-4975  notation/vocal.itely
-1931  notation/chords.itely
+4977  notation/vocal.itely
+1979  notation/chords.itely
 702   notation/piano.itely
 799   notation/percussion.itely
 826   notation/guitar.itely
 66    notation/strings.itely
 242   notation/bagpipes.itely
 5516  notation/ancient.itely
-12704 notation/input.itely -- Input syntax
+12824 notation/input.itely -- Input syntax
 2164  notation/non-music.itely -- Non-musical notation
 10911 notation/spacing.itely -- Spacing issues
-15598 notation/changing-defaults.itely -- Changing defaults
+15597 notation/changing-defaults.itely -- Changing defaults
 5187  notation/programming-interface.itely -- Interfaces for programmers
-3077  notation/notation-appendices.itely -- Notation manual tables
+3079  notation/notation-appendices.itely -- Notation manual tables
 252   notation/cheatsheet.itely -- Cheat sheet
-90202 total
+90455 total
 
 -6- Rest of Application Usage
 4211  usage/lilypond-book.itely -- LilyPond-book
index b9f1c7a77e149b7c4bdb6a648affef6ab77ad731..701e2dcff99915bbe892e5db942af84c6d9e843d 100644 (file)
@@ -942,7 +942,8 @@ by doubling them:
 (define (foo x)
   "The @@code@{@bs{}@bs{}foo@} command..."
   ...)
-@end example}
+@end example
+}
 
 @itemize
 @item
index 66a792066c532f991c30342ab4bcf169acd13bc7..8dc8d2755bccbb31416d1b89e7846dad9a9080f9 100644 (file)
@@ -364,43 +364,38 @@ If you like using font-lock, you can also add this to your
        c++-font-lock-keywords-3
        '(("\\b\\(a-zA-Z_?+_\\)\\b" 1 font-lock-variable-name-face) ("\\b\\(A-Z?+a-z_?+\\)\\b" 1 font-lock-type-face))
        ))
-@end example 
-
+@end example
 
-@subheading Indenting with vim
 
-Although emacs indentation is the GNU standard, acceptable
-indentation can usually be accomplished with vim.  Some hints for
-vim are as follows:
+@subsubheading Indenting with vim
 
-A workable .vimrc:
+Although emacs indentation is the GNU standard, correct
+indentation for C++ files can be achieved by using the settings
+recommended in the
+@url{https://gcc.gnu.org/wiki/FormattingCodeForGCC, GNU GCC Wiki}.
+Save the following in @file{~/.vim/after/ftplugin/cpp.vim}:
 
 @example
-set cindent
-set smartindent
-set autoindent
-set expandtab
-set softtabstop=2
-set shiftwidth=2
-filetype plugin indent on
-set incsearch
-set ignorecase smartcase
-set hlsearch
-set confirm
-set statusline=%F%m%r%h%w\ %@{&ff@}\ %Y\ [ASCII=\%03.3b]\ [HEX=\%02.2B]\ %04l,%04v\ %p%%\ [LEN=%L]
-set laststatus=2
-set number
-" Remove trailing whitespace on write
+setlocal cindent
+setlocal cinoptions=>4,n-2,@{2,^-2,:2,=2,g0,h2,p5,t0,+2,(0,u0,w1,m1
+setlocal shiftwidth=2
+setlocal softtabstop=2
+setlocal textwidth=79
+setlocal fo-=ro fo+=cql
+" use spaces instead of tabs
+setlocal expandtab
+" remove trailing whitespace on write
 autocmd BufWritePre * :%s/\s\+$//e
 @end example
 
-With this @file{.vimrc}, files can be reindented automatically by
+With these settings, files can be reindented automatically by
 highlighting the lines to be indented in visual mode (use V to
-enter visual mode) and pressing @code{=}.
+enter visual mode) and pressing @code{=}, or a single line
+correctly indented in normal mode by pressing @code{==}.
 
-A @file{scheme.vim} file will help improve the indentation.  This
-one was suggested by Patrick McCarty.  It should be saved in
-@file{~/.vim/after/syntax/scheme.vim}.
+A @file{scheme.vim} file will help improve the indentation of
+Scheme code.  This one was suggested by Patrick McCarty.  It
+should be saved in @file{~/.vim/after/syntax/scheme.vim}.
 
 @example
 " Additional Guile-specific 'forms'
@@ -417,24 +412,45 @@ syn keyword schemeSyntax define-safe-public define-music-function
 syn keyword schemeSyntax def-grace-function
 
 " All of the above should influence indenting too
-set lw+=define-public,define*-public
-set lw+=define*,lambda*,let-keywords*
-set lw+=defmacro,defmacro*,define-macro
-set lw+=defmacro-public,defmacro*-public
-set lw+=use-modules,define-module
-set lw+=define-method,define-class
-set lw+=define-markup-command,define-markup-list-command
-set lw+=define-safe-public,define-music-function
-set lw+=def-grace-function
+setlocal lw+=define-public,define*-public
+setlocal lw+=define*,lambda*,let-keywords*
+setlocal lw+=defmacro,defmacro*,define-macro
+setlocal lw+=defmacro-public,defmacro*-public
+setlocal lw+=use-modules,define-module
+setlocal lw+=define-method,define-class
+setlocal lw+=define-markup-command,define-markup-list-command
+setlocal lw+=define-safe-public,define-music-function
+setlocal lw+=def-grace-function
 
 " These forms should not influence indenting
-set lw-=if
-set lw-=set!
+setlocal lw-=if
+setlocal lw-=set!
 
 " Try to highlight all ly: procedures
 syn match schemeFunc "ly:[^) ]\+"
 @end example
 
+For documentation work on texinfo files, identify the file
+extensions used as texinfo files in your @file{.vim/filetype.vim}:
+
+@example
+if exists("did_load_filetypes")
+  finish
+endif
+augroup filetypedetect
+  au! BufRead,BufNewFile *.itely setfiletype texinfo
+  au! BufRead,BufNewFile *.itexi setfiletype texinfo
+  au! BufRead,BufNewFile *.tely  setfiletype texinfo
+augroup END
+@end example
+
+and add these settings in @file{.vim/after/ftplugin/texinfo.vim}:
+
+@example
+setlocal expandtab
+setlocal shiftwidth=2
+setlocal textwidth=66
+@end example
 
 @node Naming conventions
 @subsection Naming Conventions
@@ -1222,7 +1238,7 @@ achieve this by configuring with
 The executable code of LilyPond must be rebuilt from scratch:
 
 @example
-make -C lily clean && make -C lily
+make clean && make
 @end example
 
 @item Create a graphviz-compatible @file{.ly} file
@@ -1269,7 +1285,7 @@ than normal.  The original configuration can be restored by rerunning
 rebuild LilyPond with
 
 @example
-make -C lily clean && make -C lily
+make clean && make
 @end example
 
 
@@ -1721,8 +1737,8 @@ code would declare acknowledgers for a @code{NoteHead} grob (via the
 @code{side-position-interface}:
 
 @example
-@code{DECLARE_ACKNOWLEDGER (note_head)}
-@code{DECLARE_ACKNOWLEDGER (side_position)}
+DECLARE_ACKNOWLEDGER (note_head)
+DECLARE_ACKNOWLEDGER (side_position)
 @end example
 
 The @code{DECLARE_END_ACKNOWLEDGER ()} macro sets up a spanner-specific
index a2e3cb15d5e7e171c7f77c99cca4263e9444d2be..517b5e3c1462adc4cbae18d94daff245bc73b495 100644 (file)
@@ -615,8 +615,8 @@ replace @code{2.15.33-1} with the latest build):
 @uref{http://lilypond.org/downloads/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:
+Copy the tarball into @file{regtests/}, and tell the build system that
+you have done this:
 
 @example
 touch regtests/ignore
index 8e07f9fb06309632c717c11225006f8533c17077..bfebb9a0c8cf0850a58b62d88d1528af5f0b9eaf 100644 (file)
@@ -464,7 +464,7 @@ prepare your upload:
 @example
 git fetch
 git rebase origin/staging dev/cg~0
-gitk HEAD 
+gitk HEAD
 @end example
 
 @warning{Do not skip the @command{gitk} step; a quick 5-second
index 4efdc777bc17f119a9000463ff54184c58c8b181..e112ed471ea22306c8b65b55b3ebbafd08d53b03 100644 (file)
@@ -112,7 +112,7 @@ ale tento příklad slouží jako jednoduchý výchozí bod.
 @cindex score
 
 Až dosud ještě žádný z příkladů příkaz @code{\score@{@}}
-nepoužil, neboť Lilypond takové dodatečné příkazy automaticky
+nepoužil, neboť LilyPond takové dodatečné příkazy automaticky
 vkládá v případě potřeby, když má vstupní soubor jednoduchou
 stavbu.
 
@@ -226,7 +226,7 @@ začátku tohoto oddílu.  Pracuje to právě tak dobře.
 
 Dvěma dosud neviděnými příkazy jsou
 @code{\layout @{ @}} a @code{\midi @{@}}.  Když se objeví v nějakém
-souboru, vede to k tomu, že Lilypond vytvoří tisknutelný soubor PDF
+souboru, vede to k tomu, že LilyPond vytvoří tisknutelný soubor PDF
 popřípadě soubor MIDI.  Přesněji jsou popsány v uživatelské příručce -
 notace -- @ruser{Rozvržení notového zápisu} a
 @ruser{Vytváření souborů MIDI}.
index b0de130457f31a3013409ae529f64ff17be1a756..a11e6b6da547ea3792591e674deb9c56915b0386 100644 (file)
@@ -56,7 +56,7 @@ aby byl vytvořen výstupní soubor.
 @cindex Malá písmena
 
 @qq{Sestavení} je pojem, který se používá pro
-přeměnu vstupního souboru pro Lilypond programem LilyPond do
+přeměnu vstupního souboru pro LilyPond programem LilyPond do
 notového výstupu.  Výstupními soubory jsou v první řadě soubory
 PDF (pro prohlížení a tisku), MIDI (pro přehrávání)
 a PNG (pro používání na internetových stránkách).  Vstupními soubory
index a351690d71f323f9553d8a6aaf32668f72807f24..3d30991a8ccc27ed8fe47a9dbe4b58193f59360c 100644 (file)
@@ -634,9 +634,9 @@ enthält, mit der die Dicke von Legatobögen kontrolliert werden kann.
 Sie sollten folgendes finden:
 
 @example
-@code{thickness} (number)
-     @code{1.2}
-     Line thickness, generally measured in @code{line-thickness}
+thickness (number)
+     1.2
+     Line thickness, generally measured in line-thickness
 @end example
 
 Das sieht ganz danach aus, als ob damit die Dicke geändert
@@ -2055,7 +2055,7 @@ einzelne Noten in einem Akkord ist mit dem
 lautet:
 
 @example
-@code{\set fingeringOrientations = #'([up] [left/right] [down])}
+\set fingeringOrientations = #'([up] [left/right] [down])
 @end example
 
 @noindent
@@ -3931,11 +3931,11 @@ Alternative versuchen wir, einen Befehl mit
 @code{\override} und @code{\revert} zu konstruieren.
 
 @example
-@code{\override Lyrics.LyricText.font-shape = #'italic}
-@code{\override Lyrics.LyricText.font-series = #'bold}
+\override Lyrics.LyricText.font-shape = #'italic
+\override Lyrics.LyricText.font-series = #'bold
 
-@code{\revert Lyrics.LyricText.font-shape}
-@code{\revert Lyrics.LyricText.font-series}
+\revert Lyrics.LyricText.font-shape
+\revert Lyrics.LyricText.font-series
 @end example
 
 Das wäre natürlich noch viel mühsamer, wenn viele Wörter eine
index 048eff0bfa8ff2daf8c77236266ed6c76e7941b6..8c12e25c61bd367e2e98cc7648c5dbffaf1c41d6 100644 (file)
@@ -16,7 +16,7 @@ td { border: 1px solid black; text-align: center; }
 
 @end html
 @end ifhtml
-@emph{Naposledy obnoveno Sat Jul  2 15:06:05 UTC 2016
+@emph{Naposledy obnoveno Sun Aug  7 13:59:13 UTC 2016
 }
 @multitable @columnfractions  0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667
 
@@ -57,7 +57,7 @@ ano
 @item
 LilyPond -- \TITLE\
 @*
-1139
+1138
 @tab Pavel Fric
 @tab 
 @tab 
@@ -258,7 +258,7 @@ ano
 @item
 LilyPond -- \TITLE\
 @*
-1139
+1138
 @tab Pavel Fric
 @tab 
 @tab 
index a11801f05ff563ec76a2c5a9dda7a92cf6370330..5d7aee756cbcbebb178cae3badf5e642c6067103 100644 (file)
@@ -16,7 +16,7 @@
 @chapter Spouštíme @command{lilypond}
 @translationof Running lilypond
 
-Dieses Kapitel behandelt die technischen Details, wie Lilypond ausgeführt werden kann.
+Dieses Kapitel behandelt die technischen Details, wie LilyPond ausgeführt werden kann.
 
 
 @menu
@@ -87,7 +87,7 @@ Standarderweiterung für LilyPond-Dateien benutzt.  Um Daten von
 @code{stdin} einzulesen, benutzen Sie einfach einen Bindestrich (@code{-})
 als @var{Dateiname}.
 
-Wenn Lilypond die Datei @file{Dateiname.ly} verarbeitet, werden daraus
+Wenn LilyPond die Datei @file{Dateiname.ly} verarbeitet, werden daraus
 die Dateien @file{Dateiname.ps} und @file{Dateiname.pdf} erzeugt.
 Es können an @code{lilypond} auch mehrere @file{.ly} Dateien übergeben
 werden, die dann einzeln und voneinander unabhängig abgearbeitet
@@ -99,7 +99,7 @@ Falls @file{Dateiname.ly} mehr als eine @code{\book}-Umgebung enthält,
 werden die weiteren Stücke in durchnummerierte Dateien der Form
 @file{Dateiname-1.pdf} ausgegeben.  Zusätzlich wird der Wert der
 Variable @code{output-suffix} zwischen den ursprünglichen Dateinamen
-und der Zahl eingefügt.  Eine Lilypond-Datei @file{Dateiname.ly} mit dem Inhalt
+und der Zahl eingefügt.  Eine LilyPond-Datei @file{Dateiname.ly} mit dem Inhalt
 
 @example
 #(define output-suffix "Geige")
@@ -437,7 +437,7 @@ Dateien müssen in das Jail-Verzeichnis kopiert werden (mit denselben Pfaden
 wie im tatsächlichen Wurzel-Dateisystem). Die gesamte LilyPond-Installation
 (typischerweise @file{/usr/share/lilypond}) sollte kopiert werden.
 
-Falls Probleme auftreten, ist es am einfachsten, Lilypond mittels
+Falls Probleme auftreten, ist es am einfachsten, LilyPond mittels
 @command{strace} zu starten, wodurch Sie relativ leicht feststellen können,
 welche Dateien im Jail noch fehlen.
 
@@ -478,7 +478,7 @@ Zeigt die Garantiebedingungen an, unter denen GNU LilyPond steht. (Es besteht
 @command{lilypond} erkennt und benützt die folgenden proměnné prostředí:
 @table @code
 @item LILYPOND_DATADIR
-Diese Variable gibt das Verzeichnis an, wo Lilypond seine eigenen Dateien,
+Diese Variable gibt das Verzeichnis an, wo LilyPond seine eigenen Dateien,
 Meldungen und Übersetzungen finden kann.  Dieses Verzeichnis sollte
 Unterverzeichnisse @file{ly/}, @file{ps/}, @file{tex/}, etc. beinhalten.
 
@@ -693,7 +693,7 @@ test.ly:2:19: Fehler: keine gültige Dauer: 5
 
 Diese Stellen sind LilyPonds Vermutung, wo die Warnung oder der Fehler
 aufgetreten ist, allerdings treten Warnungen und Fehler ja gerade in
-unerwarteten Fällen auf.  Manchmal kann Lilypond auch eine fehlerhafte
+unerwarteten Fällen auf.  Manchmal kann LilyPond auch eine fehlerhafte
 Stelle zwar noch problemlos verarbeiten, ein paar Zeilen später wirkt
 sich der Fehler aber dann doch noch aus.  In solchen Fällen, wo Sie in
 der angegebenen Zeile keinen Fehler erkennen, sollten Sie auch die Zeilen
index 062f780c4858720fd74ee27f30448efe567c14de..cdf319690a2cc69a0ea7316263adde98b08b3e72 100644 (file)
@@ -200,7 +200,7 @@ našeho společenství: LilyPond Reportu (v angličtině).
 
 @example
 @uref{http://web.archive.org/web/20110325004849/http://news.lilynet.net}
-@end example 
+@end example
 
 @subsubheading Poštovní seznam pro nové verze: @code{info-lilypond@@gnu.org}
 
index 7aedbb9b1a4689c24451468bfc4c49fc440f79a0..0415c206a4d2420341387b0052b8da407a50e651 100644 (file)
@@ -48,7 +48,7 @@ celém souhrnu zkušeností a zvyklostech klasické notové sazby.
 @divEnd
 
 @divClass{column-right-top}
-@subheading Nasazení Lilypondu
+@subheading Nasazení LilyPondu
 
 @itemize
 
@@ -124,7 +124,7 @@ Více k tomu v našem @ref{Článek,,článku}.
 
 Travte méně času tím, že budete dodatečně měnit notovou
 sazbu: LilyPond upravuje noty správně hned od začátku.
-Rozdělení místa vypočítá sám a rovněž spočítá 
+Rozdělení místa vypočítá sám a rovněž spočítá
 zalomení řádků a stran, aby vytvořil hustý a pravidelný
 obraz not.  Střety mezi textem písně, notami a akordy
 jsou vyřešeny a všechny obloučky jsou automaticky
@@ -584,7 +584,7 @@ přímé stažení tak i k dostání na papíře.
 @uref{http://shadylane.fr/, The Shady Lane
 Publishing},
 @qq{Mikrovydavatelství not}, které si dalo za cíl
-podporu nové ekonomie hudby, které stojí hudebníkům a 
+podporu nové ekonomie hudby, které stojí hudebníkům a
 milovníkům hudby blíže.
 
 @end itemize
@@ -661,7 +661,7 @@ Prosinec 2005
 Schenker Graphs with GNU LilyPond}.  Jedná se o do hloubky jdoucí,
 ale velmi účelný článek s vyrytými ostrými obrázky
 LilyPondu.  Autor Kris Shaffer poznamenává:
-»GNU Lilypond vytváří krásnou grafiku, která se ve vztahu k obchodním nabídkám
+»GNU LilyPond vytváří krásnou grafiku, která se ve vztahu k obchodním nabídkám
 jeví jako druhá volba.«
 
 @item
@@ -750,7 +750,7 @@ překvapit.}
 
 @qq{I když jej [LilyPond] ještě tak dobře neznám, udělal na mě již teď neobyčejný
   dojem. Použil jsem tento program pro zápis not jednoho moteta od Josquina Despreze
-  v menzurálním notovém zápisu. Je mimo veškerou pochybnost, že LilyPond v 
+  v menzurálním notovém zápisu. Je mimo veškerou pochybnost, že LilyPond v
   rychlosti, v jednoduchosti používání a notové sazbě snadno předčí
   jiné notační programy.}
 @divEnd
@@ -795,7 +795,7 @@ překvapit.}
 @subsubheading Chris Snyder, @uref{https://twitter.com/adoromusic, Adoro Music Publishing}
 
 @qq{Způsob, jakým jsou noty v LilyPondu zadávány, mi dovoluje
-myslet hudebně -- byly doby, kdy jsem se LilyPondu marně 
+myslet hudebně -- byly doby, kdy jsem se LilyPondu marně
 pokoušel vysvětlit, jak se má v notách něco vysázet,
 jen abych zjistil, že, i kdybych to dokázal udělat přesně tak,
 jak to chtěl skladatel, noty by přesto byly pro čtení velmi
@@ -843,7 +843,7 @@ tím více jej mám rád!}
   první list s notami, který jsem uviděl, vypadal tak dobře. Popis
   lže, když jde o krásu LilyPondu
   -- je v tomto příliš skromný! [...] protože LilyPond se pořád zlepšuje,
-  a jak se důkladně zabývám tím, jak se věci ve 
+  a jak se důkladně zabývám tím, jak se věci ve
   Scheme dělají, mám mnohem méně pocitů marnosti. Na každý pád
   bych chtěl říci: Děkuji vám za to, že LilyPond nabízíte, je
   skutečně báječný!}
@@ -921,7 +921,7 @@ zpětným (obráceným) lomítkem.
 
 Předznamenání jsou přidávána pomocí různých koncovek: @code{-is}
 za notou sází křížek, @code{-es} zato béčko (-- toto jsou české koncovky,
-koncovky v jiných jazycích jsou možné také). LilyPond sám rozhodne o tom, kde 
+koncovky v jiných jazycích jsou možné také). LilyPond sám rozhodne o tom, kde
 předznamenání umístí.
 
 @imageFloat{text-input-2-annotate,png,center}
index 4e7569cf403daac105875c14510f4c54100ef6e2..e38eb99c69cd6737d87184d5f1a2c48728d7bf7c 100644 (file)
 \DeclareUnicodeCharacter{2116}{\textnumero}
 
 
-% Add all Cyrillic character names to \commondummies.
+% Add all Cyrillic character names to \definedummies.
 
 \gdef\cyrdummies{%
   \definedummyword\textnumero
   \definedummyword\cyrudoubleacute
 }
 
-\toks0 = \expandafter{\commondummies\cyrdummies}
-\xdef\commondummies{\the\toks0}
+\toks0 = \expandafter{\definedummies\cyrdummies}
+\xdef\definedummies{\the\toks0}
 
 
 % Add all Cyrillic character names to \indexnofonts.
index c5d0381bf2b51e57d350e9415ff72f5aaa78b3d0..ba9c3c348db88f7f6295111f88c342e229725f99 100644 (file)
@@ -41,7 +41,7 @@ es eine grundlegende Einleitung in LilyPonds
 Codeabschnitte in LilyPond sehen etwa so aus:
 
 @example
-  #@{ @var{Lilypond code} #@}
+  #@{ @var{LilyPond code} #@}
 @end example
 
 Sie können überall eingesetzt werden, wo man Scheme-Code schreiben
index 6213ffdd29bf8cb9f0a56e560b70c67bbcbd18cb..4349d03460082dfa95d6d4661ad21e4fecde637c 100644 (file)
@@ -821,7 +821,7 @@ traLaLa = @{ c'4 d'4 @}
 wird intern in die Scheme-Definition
 
 @example
-(define traLaLa @var{Scheme-Wert von `@code{... }'})
+(define traLaLa @var{Scheme-Wert von `... '})
 @end example
 
 @noindent
index 57f5afc41cef384f26e9f2a8d1b7551b96b011e4..bfc04a3253e2a598f75a80371603bab36a1f2d62 100644 (file)
@@ -776,9 +776,9 @@ enthält, mit der die Dicke von Legatobögen kontrolliert werden kann.
 Sie sollten folgendes finden:
 
 @example
-@code{thickness} (number)
-     @code{1.2}
-     Line thickness, generally measured in @code{line-thickness}
+thickness (number)
+     1.2
+     Line thickness, generally measured in line-thickness
 @end example
 
 Das sieht ganz danach aus, als ob damit die Dicke geändert
@@ -2259,7 +2259,7 @@ einzelne Noten in einem Akkord ist mit dem
 lautet:
 
 @example
-@code{\set fingeringOrientations = #'([up] [left/right] [down])}
+\set fingeringOrientations = #'([up] [left/right] [down])
 @end example
 
 @noindent
@@ -4426,11 +4426,11 @@ Alternative versuchen wir, einen Befehl mit
 @code{\override} und @code{\revert} zu konstruieren.
 
 @example
-@code{\override Lyrics.LyricText.font-shape = #'italic}
-@code{\override Lyrics.LyricText.font-series = #'bold}
+\override Lyrics.LyricText.font-shape = #'italic
+\override Lyrics.LyricText.font-series = #'bold
 
-@code{\revert Lyrics.LyricText.font-shape}
-@code{\revert Lyrics.LyricText.font-series}
+\revert Lyrics.LyricText.font-shape
+\revert Lyrics.LyricText.font-series
 @end example
 
 Das wäre natürlich noch viel mühsamer, wenn viele Wörter eine
index 205626f3182b5cb1658729650366ddd533019ea8..70950526fff8d57300f17b749c52dec13d2a6c7f 100644 (file)
@@ -1279,7 +1279,7 @@ der neue Kontext unter den existierenden Kontexten angelegt.  Um ihn aber
 sollte er folgenderweise erstellt werden:
 
 @example
-@code{\new Staff \with @{ alignAboveContext = #"Hauptstimme" @} }
+\new Staff \with @{ alignAboveContext = #"Hauptstimme" @}
 @end example
 
 Eine ähnliche Situation entsteht, wenn man einen zeitweiligen Gesangstext
@@ -2097,7 +2097,7 @@ aktuellen Kontextes.  Das kann mit dem @code{\tweak}-Befehl erreicht
 werden, mit dem man Optimierungen vornehmen kann:
 
 @example
-\tweak @var{Layout-Objekt} #'@code{grob-eigenschaft} #@code{Wert}
+\tweak @var{Layout-Objekt} #'grob-eigenschaft #Wert
 @end example
 
 Die Angabe von @var{Layout-Objekt} ist optional.
index e4ed6b14838bd69574d31d509210801b5cba2f51..7721d3019ac329953afda5fe00d149640dfd3676 100644 (file)
@@ -1105,9 +1105,9 @@ innerhalb der @code{\paper}-Umgebung hinzuzufügen.  Hierzu wird folgende
 Syntax eingesetzt:
 
 @example
-@code{Variable} = @code{\markup} @{
+Variable = \markup @{
   ...
-  @code{\on-the-fly}  #@var{Prozedur}  @var{Beschriftung}
+  \on-the-fly  #@var{Prozedur}  @var{Beschriftung}
   ...
 @}
 @end example
@@ -1172,9 +1172,9 @@ Verschiedene @code{\on-the-fly}-Bedingungen können mit dem Operator
 @qq{UND} verknüpft werden, beispielsweise bestimmt
 
 @example
-  @code{\on-the-fly #first-page}
-  @code{\on-the-fly #last-page}
-  @code{@{ \markup ... \fromproperty #'header: ... @}}
+  \on-the-fly #first-page
+  \on-the-fly #last-page
+  @{ \markup ... \fromproperty #'header: ... @}
 @end example
 
 @noindent
index 50784f29ac3a79a1f45b89a9b3c4a0744d2f0aeb..b4fce56e2d1effea5c1db94ca443905310e4156a 100644 (file)
@@ -1253,7 +1253,7 @@ Bs) am Beginn jedes Notensystems.
 Die Tonart kann geändert werden:
 
 @example
-@code{\key} @var{Tonhöhe} @var{Modus}
+\key @var{Tonhöhe} @var{Modus}
 @end example
 
 @funindex \minor
index 53ad92a27e34090cbb8213860f20996e8886a0de..0e63af4282a61d2b5be3782a2c4019e7a5d10d81 100644 (file)
@@ -1752,7 +1752,7 @@ Taktarten aus mehreren Teilen werden mit der Funktion
 @code{\compoundMeter} erstellt.  Die Syntax ist folgende:
 
 @example
-\compoundMeter #'@code{(Liste aus Listen)}
+\compoundMeter #'(Liste aus Listen)
 @end example
 
 Die einfachste Konstruktion ist eine einzige Liste, wobei die letzte
index c57267d2cdb161f1329767edc0bf469a7cb139f5..8ceb8227861cdda8444ebf4e0b990f25ec120fcd 100644 (file)
@@ -6,6 +6,6 @@ Spieler die Saite auf das Griffbrett aufschlagen lässt, sodass zusätzlich
 zum angeschlagenen Ton ein scharfes, knallendes Geräusch ertönt}
 (Wikipedia).  Es wird dargestellt als kleiner Kreis mit einer vertikalen
 Linie, die vom Kreiszentrum aus nach oben weist und ein Stück außerhalb des
-Kreises endet.  Lilypond hat keinen eigenen Glyphen für dieses Symbol; es
+Kreises endet.  LilyPond hat keinen eigenen Glyphen für dieses Symbol; es
 ist aber einfach, direkt eine Definition in die Eingabedatei einzufügen.
 "
index 34f04da14e19fe07663ffd87b38dc577f40f7e57..11ef2431e6d2ba01189e4ce0673e728c4fa12fd8 100644 (file)
@@ -16,7 +16,7 @@ td { border: 1px solid black; text-align: center; }
 
 @end html
 @end ifhtml
-@emph{Zuletzt aktualisiert am Sat Jul  2 15:06:05 UTC 2016
+@emph{Zuletzt aktualisiert am Sun Aug  7 13:59:13 UTC 2016
 }
 @multitable @columnfractions  0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667
 
@@ -57,7 +57,7 @@ teilweise
 @item
 LilyPond -- \TITLE\
 @*
-1139
+1138
 @tab Till Paala
 @tab 
 @tab 
@@ -177,7 +177,7 @@ teilweise
 @item
 LilyPond -- \TITLE\
 @*
-1139
+1138
 @tab Till Paala
 @tab 
 @tab 
@@ -299,7 +299,7 @@ ja
 @item
 LilyPond -- \TITLE\
 @*
-1139
+1138
 @tab Till Paala
 @*
 Michael Gerdau
@@ -516,7 +516,7 @@ teilweise
 @item
 LilyPond -- \TITLE\
 @*
-1139
+1138
 @tab Till Paala
 @tab 
 @tab 
@@ -570,7 +570,7 @@ ja
 @item
 1.1 Tonhöhen
 @*
-5169
+5224
 @tab Till Paala
 @tab 
 @tab 
@@ -587,7 +587,7 @@ ja
 @ifhtml
 
 @html
-<span style="background-color: #a5ff31">teilweise</span>
+<span style="background-color: #acff31">teilweise</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -597,7 +597,7 @@ teilweise
 @item
 1.2 Rhythmus
 @*
-6795
+6822
 @tab Till Paala
 @tab 
 @tab 
@@ -614,7 +614,7 @@ ja
 @ifhtml
 
 @html
-<span style="background-color: #d4ff37">teilweise</span>
+<span style="background-color: #dbff38">teilweise</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -695,7 +695,7 @@ ja
 @ifhtml
 
 @html
-<span style="background-color: #97ff2f">teilweise</span>
+<span style="background-color: #9eff30">teilweise</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -813,7 +813,7 @@ ja
 @item
 2.1 Notation von Gesang
 @*
-4975
+4977
 @tab Till Paala
 @tab 
 @tab 
@@ -867,7 +867,7 @@ teilweise
 @item
 2.3 Bundlose Saiteninstrumente
 @*
-303
+279
 @tab Till Paala
 @tab 
 @tab 
@@ -884,7 +884,7 @@ ja
 @ifhtml
 
 @html
-<span style="background-color: #91ff2e">teilweise</span>
+<span style="background-color: #9eff30">teilweise</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -894,7 +894,7 @@ teilweise
 @item
 2.4 Saiteninstrumente mit Bünden
 @*
-2820
+2821
 @tab Till Paala
 @tab 
 @tab 
@@ -938,7 +938,7 @@ ja
 @ifhtml
 
 @html
-<span style="background-color: #a5ff31">teilweise</span>
+<span style="background-color: #acff31">teilweise</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -975,7 +975,7 @@ teilweise
 @item
 2.7 Notation von Akkorden
 @*
-1931
+1979
 @tab Till Paala
 @tab 
 @tab 
@@ -992,7 +992,7 @@ ja
 @ifhtml
 
 @html
-<span style="background-color: #4efe25">teilweise</span>
+<span style="background-color: #54ff26">teilweise</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -1046,7 +1046,7 @@ ja
 @ifhtml
 
 @html
-<span style="background-color: #97ff2f">teilweise</span>
+<span style="background-color: #9eff30">teilweise</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -1083,7 +1083,7 @@ teilweise
 @item
 3 Allgemeine Eingabe und Ausgabe
 @*
-12704
+12824
 @tab Till Paala
 @tab 
 @tab 
@@ -1100,7 +1100,7 @@ teilweise (94 %)
 @ifhtml
 
 @html
-<span style="background-color: #ffdd42">teilweise</span>
+<span style="background-color: #ffda43">teilweise</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -1127,7 +1127,7 @@ ja
 @ifhtml
 
 @html
-<span style="background-color: #e8fe39">teilweise</span>
+<span style="background-color: #efff3a">teilweise</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -1137,7 +1137,7 @@ teilweise
 @item
 5 Standardeinstellungen verändern
 @*
-15598
+15597
 @tab Till Paala
 @tab 
 @tab 
@@ -1164,7 +1164,7 @@ teilweise
 @item
 A Notationsübersicht
 @*
-3077
+3079
 @tab Till Paala
 @tab 
 @tab 
@@ -1181,7 +1181,7 @@ ja
 @ifhtml
 
 @html
-<span style="background-color: #e1ff39">teilweise</span>
+<span style="background-color: #e8fe39">teilweise</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -1257,7 +1257,7 @@ teilweise
 @item
 LilyPond -- \TITLE\
 @*
-1139
+1138
 @tab Till Paala
 @tab 
 @tab 
@@ -1413,7 +1413,7 @@ ja
 @ifhtml
 
 @html
-<span style="background-color: #7dff2b">teilweise</span>
+<span style="background-color: #83fe2c">teilweise</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -1464,7 +1464,7 @@ ja
 @item
 LilyPond -- \TITLE\
 @*
-1139
+1138
 @tab Till Paala
 @*
 Michael Gerdau
@@ -1512,7 +1512,7 @@ ja
 @ifhtml
 
 @html
-<span style="background-color: #2cff20">teilweise</span>
+<span style="background-color: #33ff21">teilweise</span>
 @end html
 @end ifhtml
 @ifnothtml
index 964bfb70dcebda079343ba8e02c6d5d929ccfffe..5c40607888bd94be8b4be78a4275e2972d921bc0 100644 (file)
@@ -1017,7 +1017,7 @@ version, the format @code{texi-html} must be used instead.
 @item -F @var{Filter}
 @itemx --filter=@var{Filter}
 Leitet die Musikfragmente durch das Programm @var{filter} anstatt sie
-mit Lilypond zu einer Grafik zu verarbeiten. @option{--filter} und
+mit LilyPond zu einer Grafik zu verarbeiten. @option{--filter} und
 @option{--process} kann nicht gleichzeitig benutzt werden. Beispielaufruf:
 
 @example
index ff5bdb67befda3876333ab9f766a4539aa5e91ac..fb0030b7091cf5200487b17c07508fa5d7e8f3a8 100644 (file)
@@ -17,7 +17,7 @@
 @chapter @command{lilypond} starten
 @translationof Running lilypond
 
-Dieses Kapitel behandelt die technischen Details, wie Lilypond ausgeführt werden kann.
+Dieses Kapitel behandelt die technischen Details, wie LilyPond ausgeführt werden kann.
 
 
 @menu
@@ -89,7 +89,7 @@ Standarderweiterung für LilyPond-Dateien benutzt.  Um Daten von
 @code{stdin} einzulesen, benutzen Sie einfach einen Bindestrich (@code{-})
 als @var{Dateiname}.
 
-Wenn Lilypond die Datei @file{Dateiname.ly} verarbeitet, werden daraus
+Wenn LilyPond die Datei @file{Dateiname.ly} verarbeitet, werden daraus
 die Dateien @file{Dateiname.ps} und @file{Dateiname.pdf} erzeugt.
 Es können an @code{lilypond} auch mehrere @file{.ly} Dateien übergeben
 werden, die dann einzeln und voneinander unabhängig abgearbeitet
@@ -101,7 +101,7 @@ Falls @file{Dateiname.ly} mehr als eine @code{\book}-Umgebung enthält,
 werden die weiteren Stücke in durchnummerierte Dateien der Form
 @file{Dateiname-1.pdf} ausgegeben.  Zusätzlich wird der Wert der
 Variable @code{output-suffix} zwischen den ursprünglichen Dateinamen
-und der Zahl eingefügt.  Eine Lilypond-Datei @file{Dateiname.ly} mit dem Inhalt
+und der Zahl eingefügt.  Eine LilyPond-Datei @file{Dateiname.ly} mit dem Inhalt
 
 @example
 #(define output-suffix "Geige")
@@ -295,7 +295,7 @@ Dateien müssen in das Jail-Verzeichnis kopiert werden (mit denselben Pfaden
 wie im tatsächlichen Wurzel-Dateisystem). Die gesamte LilyPond-Installation
 (typischerweise @file{/usr/share/lilypond}) sollte kopiert werden.
 
-Falls Probleme auftreten, ist es am einfachsten, Lilypond mittels
+Falls Probleme auftreten, ist es am einfachsten, LilyPond mittels
 @command{strace} zu starten, wodurch Sie relativ leicht feststellen können,
 welche Dateien im Jail noch fehlen.
 
@@ -727,7 +727,7 @@ Log-Daten in die Dateien @code{Datei1.log}, @code{Datei2.log} ... schreiben.
 
 @item @code{strict-infinity-checking}
 @tab @code{#f}
-@tab Erzwinge einen Programmabsturz wenn @code{Inf} und @code{NaN} 
+@tab Erzwinge einen Programmabsturz wenn @code{Inf} und @code{NaN}
 Fließkommaausnahmen gefunden werden.
 
 @item @code{strip-output-dir}
@@ -772,7 +772,7 @@ wird in die Dateien @code{FILE.stacks} und @code{FILE.graph} ausgegeben.
 @command{lilypond} erkennt und benützt die folgenden Umgebungsvariablen:
 @table @code
 @item LILYPOND_DATADIR
-Diese Variable gibt das Verzeichnis an, wo Lilypond seine eigenen Dateien,
+Diese Variable gibt das Verzeichnis an, wo LilyPond seine eigenen Dateien,
 Meldungen und Übersetzungen finden kann.  Dieses Verzeichnis sollte
 Unterverzeichnisse @file{ly/}, @file{ps/}, @file{tex/}, etc. beinhalten.
 
@@ -990,7 +990,7 @@ test.ly:2:19: Fehler: keine gültige Dauer: 5
 
 Diese Stellen sind LilyPonds Vermutung, wo die Warnung oder der Fehler
 aufgetreten ist, allerdings treten Warnungen und Fehler ja gerade in
-unerwarteten Fällen auf.  Manchmal kann Lilypond auch eine fehlerhafte
+unerwarteten Fällen auf.  Manchmal kann LilyPond auch eine fehlerhafte
 Stelle zwar noch problemlos verarbeiten, ein paar Zeilen später wirkt
 sich der Fehler aber dann doch noch aus.  In solchen Fällen, wo Sie in
 der angegebenen Zeile keinen Fehler erkennen, sollten Sie auch die Zeilen
index d0379981804138abdb03816d1995ee34ac14fa43..fd1c88ed28579265a6b87060613d29856236826a 100644 (file)
@@ -56,7 +56,7 @@ der Musik konzentrieren.
 @divEnd
 
 @divClass{column-right-top}
-@subheading Lilypond im Einsatz
+@subheading LilyPond im Einsatz
 @itemize
 
 @item
@@ -395,7 +395,7 @@ Die Farben wurden zur Verdeutlichung hinzugefügt.
 @subheading Individuelle Ausgabe
 
 Ein kurzer Auszug aus Stockhausen's Klavierstück II zeigt die
-Fähigkeiten von Lilypond eine individuelle Ausgabe zu erzeugen.
+Fähigkeiten von LilyPond eine individuelle Ausgabe zu erzeugen.
 
 @exampleImage{Stockhausen_Klavierstueck2}
 @divEnd
@@ -613,7 +613,7 @@ haben, LilyPond auszuprobieren, lesen zuerst über unsere
 @unnumberedsec Produktionen
 @translationof Productions
 
-@divClass{column-left-top}
+@divClass{column-center-top}
 
 @subheading Produktionen die LilyPond verwenden
 
@@ -878,7 +878,7 @@ Artikel unter dem Titel
 Schenker Graphs with GNU LilyPond}.  Es handelt sich um einen
 tiefgehenden, aber sehr praktischen Artikel mit gestochen
 scharfen LilyPond-Graphiken.  Der Autor Kris Shaffer merkt an:
-»GNU Lilypond erstellt schöne Graphik, die kommerzielle Alternativen
+»GNU LilyPond erstellt schöne Graphik, die kommerzielle Alternativen
 als zweite Wahl erscheinen lassen.«
 
 @item
index 451fb6b598aa1ef0cb369381d50b4caf93d1821f..97465bf0ff962b9722912b8dae7cdea5cc7adbde 100644 (file)
@@ -750,9 +750,9 @@ estándar.  Navegue por ellos buscando una propiedad que pudiera
 controlar el grosor de las ligaduras, y encontrará
 
 @example
-@code{thickness} (number)
-     @code{1.2}
-     Line thickness, generally measured in @code{line-thickness}
+thickness (number)
+     1.2
+     Line thickness, generally measured in line-thickness
 @end example
 
 Esto promete ser una buena opción para cambiar el grosor.  Nos
@@ -2209,7 +2209,7 @@ digitaciones mediante la utilización de la instrucción @code{\set
 fingeringOrientations}.  El formato de esta instrucción es:
 
 @example
-@code{\set fingeringOrientations = #'([up] [left/right] [down])}
+\set fingeringOrientations = #'([up] [left/right] [down])
 @end example
 
 @noindent
@@ -4336,11 +4336,11 @@ variables simples. ¿Podríamos, como alternativa, utilizar las
 instrucciones @code{\override} y @code{\revert}?
 
 @example
-@code{\override Lyrics.LyricText.font-shape = #'italic}
-@code{\override Lyrics.LyricText.font-series = #'bold}
+\override Lyrics.LyricText.font-shape = #'italic
+\override Lyrics.LyricText.font-series = #'bold
 
-@code{\revert Lyrics.LyricText.font-shape}
-@code{\revert Lyrics.LyricText.font-series}
+\revert Lyrics.LyricText.font-shape
+\revert Lyrics.LyricText.font-series
 @end example
 
 Estas instrucciones también serían extremadamente tediosas de
index a90010a8bb64de51174121eb3967d559716215a8..62aaf8785ff62eee056ea4f0b3641c62d01f95ed 100644 (file)
@@ -1489,7 +1489,7 @@ del contexto que tenga el nombre @qq{principal}, debería definirse
 de esta forma:
 
 @example
-@code{\new Staff \with @{ alignAboveContext = #"principal" @} }
+\new Staff \with @{ alignAboveContext = #"principal" @}
 @end example
 
 Se presenta una situación similar cuando se posiciona un contexto
@@ -2878,7 +2878,7 @@ predefinidas para especificar la dirección.  Todas ellas son de la
 forma:
 
 @example
-@code{\xxxUp}, @code{\xxxDown} o @code{\xxxNeutral}
+\xxxUp, \xxxDown o \xxxNeutral
 @end example
 
 @noindent
@@ -4512,7 +4512,7 @@ instrucción @code{\shape} permite evitar las colisiones.
 La sintaxis de @code{\shape} es:
 
 @example
-[-]@code{\shape} @var{desplazamientos} @var{elemento}
+[-]\shape @var{desplazamientos} @var{elemento}
 @end example
 
 Esta instrucción recoloca los puntos de control de @var{elemento}
@@ -4728,7 +4728,7 @@ objeto de extensión.
 La sintaxis de @code{\alterBroken} es
 
 @example
-[-]@code{\alterBroken} @var{propiedad} @var{valores} @var{elemento}
+[-]\alterBroken @var{propiedad} @var{valores} @var{elemento}
 @end example
 
 El argumento @var{valores} es una lista de valores, uno por cada
@@ -4975,7 +4975,7 @@ debe devolver @code{#t}.
 
 @item @code{@var{@dots{}música@dots{}}}
 @tab código de entrada normal de LilyPond, que utiliza @code{$} (en los
-lugares en que sólo se permiten construcciones de Lilypond) o
+lugares en que sólo se permiten construcciones de LilyPond) o
 @code{#} (para usarlo como un valor de Scheme o un argumento de
 función musical o música dentro de listas de música) para
 referenciar argumentos (p.ej. @samp{#arg1}).
index 62f92f0fbcafc1ff59c3a998e9068425ccb001b6..facc1aaedd7cac3d7a2bfea7df3ebd889ee6f24c 100644 (file)
@@ -1904,7 +1904,7 @@ music = \relative {
 Otra téctnica de ejecución (utilizada especialmente en la guitarra
 eléctrica) se llama @notation{tapado de palma}.  La cuerda es
 parcialmente tapada por la palma de la mano que pulsa (de ahí el
-nombre).  Lilypond contempla la notación de las notas de estilo de
+nombre).  LilyPond contempla la notación de las notas de estilo de
 tapado de palma mediante el cambio de la forma de la cabeza de
 nota a un triángulo.
 
index 8aa61e30412e421a657fc72c11f30f2eae5bdc99..88e9d7600fd9c8da5935b41c45ec660b10913b75 100644 (file)
@@ -247,7 +247,7 @@ archivo como un solo bloque @code{\book}, véase @ref{Estructura
 del archivo}.
 
 Al producir varios archivos a partir de un solo archivo fuente,
-Lilypond se asegura de que ninguno de los archivos de salida de
+LilyPond se asegura de que ninguno de los archivos de salida de
 ningún bloque @code{\book} sobreescribe el archivo de salida
 producido por un @code{\book} anterior del mismo archivo de
 entrada.
@@ -293,11 +293,11 @@ en el archivo fuente @file{eightminiatures.ly}, produce
 @funindex \bookOutputSuffix
 @funindex \bookOutputName
 
-Lilypond le ofrece unos mecanismos que le permiten controlar los
+LilyPond le ofrece unos mecanismos que le permiten controlar los
 nombres de archivo que se utilizan por parte de los diversos
 motores finales al producir los archivos de salida.
 
-En la sección anterior vimos cómo Lilypond evita las
+En la sección anterior vimos cómo LilyPond evita las
 coincidencias de nombres al producir varias salidas a partir de
 un único archivo fuente de entrada.  También podemos especificar
 nuestros propios sufijos para cada bloque @code{\book}, de manera
@@ -1211,9 +1211,9 @@ encabezamiento y pie de página definido dentro del bloque
 @code{\paper}, usando la sintaxis siguiente:
 
 @example
-@code{variable} = @code{\markup} @{
+variable = \markup @{
   @dots{}
-  @code{\on-the-fly}  \@var{procedimiento}  @var{marcado}
+  \on-the-fly  \@var{procedimiento}  @var{marcado}
   @dots{}
 @}
 @end example
@@ -1280,8 +1280,8 @@ Se pueden combinar varias condiciones de @code{\on-the-fly} con
 un operador @q{and}, por ejemplo:
 
 @example
-  @code{\on-the-fly \first-page}
-  @code{\on-the-fly \last-page}
+  \on-the-fly \first-page
+  \on-the-fly \last-page
   @code{@{ \markup @dots{} \fromproperty #'header: @dots{} @}}
 @end example
 
@@ -1310,9 +1310,9 @@ establece la propiedad @code{title} del bloque @code{header} como
 título.
 
 @example
-  @code{\header@{}
-    @code{title = "Sinfonía núm. 1"}
-  @code{@}}
+  \header@{
+    title = "Sinfonía núm. 1"
+  @}
 @end example
 
 Si quiere fijar el título de la salida impresa con un texto pero
@@ -1321,10 +1321,10 @@ diferente, puede usar @code{pdftitle} como se muestra a
 continuación.
 
 @example
-  @code{\header@{}
-    @code{title = "Sinfonía núm. 1"}
-    @code{pdftitle = "Sinfonía núm. 1 de Beethoven"}
-  @code{@}}
+  \header@{
+    title = "Sinfonía núm. 1"
+    pdftitle = "Sinfonía núm. 1 de Beethoven"
+  @}
 @end example
 
 Todas las variables @code{title}, @code{subject},
@@ -3905,7 +3905,7 @@ lilypond archivo.ly >resultado.txt
 @end example
 
 @funindex \void
-Observe que Lilypond no se limita a mostrar la expresión musical,
+Observe que LilyPond no se limita a mostrar la expresión musical,
 sino que también la interpreta (porque @code{\displayLilyMusic}
 la devuelve además de mostrarla).  Simplemente inserte
 @code{\displayLilyMusic} dentro de
index 0851e27f253ae3f6569929260718b01319cbac13..4bcf40ae9a756725bb63091df8c5a3b75ed0731e 100644 (file)
@@ -1782,7 +1782,7 @@ y @code{Default_bar_line_engraver} al contexto de @code{Staff}.
 Se crean usando la función @code{\compoundMeter}.  La sintaxis es:
 
 @example
-\compoundMeter #'@code{(lista de listas)}
+\compoundMeter #'(lista de listas)
 @end example
 
 La construcción más simple es una lista única, en la que el
index 10b5f40158d15ba74119de313279cac0a9ebc7cc..399643d98022be032ab2793a568fd16aa336db08 100644 (file)
@@ -16,7 +16,7 @@ td { border: 1px solid black; text-align: center; }
 
 @end html
 @end ifhtml
-@emph{Actualizado en Sat Jul  2 15:06:05 UTC 2016
+@emph{Actualizado en Sun Aug  7 13:59:13 UTC 2016
 }
 @multitable @columnfractions  0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667
 
@@ -30,7 +30,7 @@ Registro de cambios de LilyPond
 @item
 Títulos de sección
 @*
-2393
+2449
 @tab Francisco Vila
 @tab 
 @tab 
@@ -57,7 +57,7 @@ sí
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab Francisco Vila
 @tab 
 @tab 
@@ -123,7 +123,7 @@ sí
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab Francisco Vila
 @tab 
 @tab 
@@ -243,7 +243,7 @@ sí
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab Francisco Vila
 @tab 
 @tab 
@@ -363,7 +363,7 @@ sí
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab Francisco Vila
 @tab 
 @tab 
@@ -564,7 +564,7 @@ sí
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab Francisco Vila
 @tab 
 @tab 
@@ -618,7 +618,7 @@ sí
 @item
 1.1 Alturas
 @*
-5169
+5224
 @tab Francisco Vila
 @tab 
 @tab 
@@ -635,17 +635,17 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">sí</span>
+<span style="background-color: #25fe1f">parcialmente</span>
 @end html
 @end ifhtml
 @ifnothtml
-sí
+parcialmente
 @end ifnothtml
 @tab pre-GDP
 @item
 1.2 Duraciones
 @*
-6795
+6822
 @tab Francisco Vila
 @tab 
 @tab 
@@ -662,11 +662,11 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">sí</span>
+<span style="background-color: #2cff20">parcialmente</span>
 @end html
 @end ifhtml
 @ifnothtml
-sí
+parcialmente
 @end ifnothtml
 @tab pre-GDP
 @item
@@ -743,11 +743,11 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">sí</span>
+<span style="background-color: #25fe1f">parcialmente</span>
 @end html
 @end ifhtml
 @ifnothtml
-sí
+parcialmente
 @end ifnothtml
 @tab post-GDP
 @item
@@ -861,7 +861,7 @@ sí
 @item
 2.1 Música vocal
 @*
-4975
+4977
 @tab Francisco Vila
 @tab 
 @tab 
@@ -915,7 +915,7 @@ sí
 @item
 2.3 Instrumentos de cuerda sin trastes
 @*
-303
+279
 @tab Francisco Vila
 @tab 
 @tab 
@@ -932,17 +932,17 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">sí</span>
+<span style="background-color: #25fe1f">parcialmente</span>
 @end html
 @end ifhtml
 @ifnothtml
-sí
+parcialmente
 @end ifnothtml
 @tab pre-GDP
 @item
 2.4 Instrumentos de cuerda con trastes
 @*
-2820
+2821
 @tab Francisco Vila
 @tab 
 @tab 
@@ -1023,7 +1023,7 @@ sí
 @item
 2.7 Notación de acordes
 @*
-1931
+1979
 @tab Francisco Vila
 @tab 
 @tab 
@@ -1040,11 +1040,11 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">sí</span>
+<span style="background-color: #25fe1f">parcialmente</span>
 @end html
 @end ifhtml
 @ifnothtml
-sí
+parcialmente
 @end ifnothtml
 @tab pre-GDP
 @item
@@ -1131,7 +1131,7 @@ sí
 @item
 3 Entrada y salida generales
 @*
-12704
+12824
 @tab Francisco Vila
 @tab 
 @tab 
@@ -1148,11 +1148,11 @@ sí
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">sí</span>
+<span style="background-color: #2cff20">parcialmente</span>
 @end html
 @end ifhtml
 @ifnothtml
-sí
+parcialmente
 @end ifnothtml
 @tab pre-GDP
 @item
@@ -1185,7 +1185,7 @@ sí
 @item
 5 Cambiar los valores por omisión
 @*
-15598
+15597
 @tab Francisco Vila
 @tab 
 @tab 
@@ -1212,7 +1212,7 @@ sí
 @item
 A Tablas del manual sobre notación
 @*
-3077
+3079
 @tab Francisco Vila
 @tab 
 @tab 
@@ -1305,7 +1305,7 @@ sí
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab Francisco Vila
 @tab 
 @tab 
@@ -1506,7 +1506,7 @@ sí
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab Francisco Vila
 @tab 
 @tab 
index 89cc34cb280ddcc082177492a2dd4d001d46ce6d..3024ff3453da96c4adf114959fbdfb2b639dee04 100644 (file)
@@ -338,7 +338,7 @@ define las relaciones de dependencia entre los archivos y qué
 instrucciones necesitamos dar al sistema operativo para producir
 un archivo a partir de otro.  Por ejemplo, el archivo de make
 detallaría cómo obtener @file{balada.pdf} y @file{balada.midi} a
-partir de @file{balada.ly} mediante la ejecución de Lilypond.
+partir de @file{balada.ly} mediante la ejecución de LilyPond.
 
 Existen ocasiones en las que es buena idea crear un
 @code{Makefile} para nuestro proyecto, bien sea por nuestra propia
index 8a3d11f105e5fe6cdfac634b241f2efe3ec5b57f..c75e85971e709530069986358682f57f59d366a6 100644 (file)
@@ -967,7 +967,7 @@ Febrero de 2004
 
 El cantante de jazz Gail Selkirk escribe sobre
 @uref{http://www.songbirdofswing.com/editorial_page/lilypond/,
-Sumergirse en el estanque de los nenúfares (Lily Pond)}.
+Sumergirse en el estanque de los nenúfares (LilyPond)}.
 @qq{@dots{} puede hacer hojas guía de acordes o partes orquestales
 completas, y el resultado puede ser increíble.}
 @uref{http://www.computermusic.co.uk/, Computer Music Special},
index ae822ccffb13130b45029054f582a8af410288b5..6db036faffa7a400e899e7f78f01b7254e32abfe 100644 (file)
@@ -70,7 +70,7 @@ codificados directamente dentro de la partitura de LilyPond.
 
 
 @newsItem
-@subheading Lanzado Lilypond 2.18.0  @emph{29 de diciembre de 2013}
+@subheading Lanzado LilyPond 2.18.0  @emph{29 de diciembre de 2013}
 
 Nos llena de orgullo anunciar el lanzamiento de GNU LilyPond
 2.18.0.  LilyPond es un programa de tipografía musical para editar
@@ -212,7 +212,7 @@ actualicen a esta versión.
 @newsEnd
 
 @newsItem
-@subheading ¡Lanzado Lilypond 2.16.0!  @emph{24 de agosto de 2012}
+@subheading ¡Lanzado LilyPond 2.16.0!  @emph{24 de agosto de 2012}
 
 Nos llena de orgullo anunciar el lanzamiento de GNU LilyPond 2.16.0.
 LilyPond es un programa de tipografía musical para editar partituras,
index 60497e625bfb2ca434cbeab92438e9c804759e8c..61d5b8d8913967d42c80aa2bd89f860927a662e2 100644 (file)
@@ -1055,7 +1055,7 @@ lugar.
 @newsEnd
 
 @newsItem
-@subheading ¡Lanzado Lilypond 2.16.0!  @emph{24 de agosto de 2012}
+@subheading ¡Lanzado LilyPond 2.16.0!  @emph{24 de agosto de 2012}
 
 Nos llena de orgullo anunciar el lanzamiento de GNU LilyPond 2.16.0.
 LilyPond es un programa de tipografía musical para editar partituras,
@@ -4387,7 +4387,7 @@ in-depth but hands-on feature article with crisp LilyPond
 graphics.
 @*
 Author Kris Shaffer remarks
-&ldquo;GNU Lilypond generates beautiful graphics that make commercial
+&ldquo;GNU LilyPond generates beautiful graphics that make commercial
 alternatives seem second-rate.&rdquo;
 This article is now available @uref{http://www.linuxjournal.com/article/8583,on-line}.
 @newsEnd
@@ -4995,10 +4995,10 @@ file and download @ref{Descargas antiguas}!
 
 @newsItem
 @subheading February 26, 2005
-The @uref{http://lsr.di.unimi.it/,Lilypond Snippet
-Repository (LSR)} is a searchable database of Lilypond code
+The @uref{http://lsr.di.unimi.it/,LilyPond Snippet
+Repository (LSR)} is a searchable database of LilyPond code
 snippets.  You can add snippets too, so join the LSR project, and
-contribute creative ideas for using Lilypond.
+contribute creative ideas for using LilyPond.
 @newsEnd
 
 
@@ -5219,7 +5219,7 @@ the @uref{http://git.savannah.gnu.org/cgit/lilypond.git/plain/ChangeLog?id=abfdd
 
 @newsItem
 @subheading October 29, 2004
-2.3.25 is the final release candidate for Lilypond 2.4.
+2.3.25 is the final release candidate for LilyPond 2.4.
 Werner has been overhauling the TeX macros and
 lilypond-book. In addition, this release contains an
 important fix for raggedbottom page-layout.
index fd0beaa9e19c17ac4e7f62f0ba923dd23fed84e7..5984c4f038c926d962627ef67aafb5b6cf1e886f 100644 (file)
@@ -777,17 +777,28 @@ twentyFour = #(* 2 twelve)
 @end example
 
 @noindent
-which would result in the number 24 being stored in the
-LilyPond (and Scheme) variable @code{twentyFour}.
-
-The usual way to refer to LilyPond variables is to call them using a
-backslash, i.e., @code{\twentyFour} (see @ref{LilyPond Scheme syntax}).
-Since this creates a copy of the value for most of LilyPond's internal
-types, in particular music expressions, music functions don't usually
-create copies of material they change.  For this reason, music
-expressions given with @code{#} should usually not contain material that
-is not either created from scratch or explicitly copied rather than
-directly referenced.
+which would result in the number @emph{24} being stored in the LilyPond
+(and Scheme) variable @code{twentyFour}.
+
+Scheme allows modifying complex expressions in-place and LilyPond makes
+use of this @q{in-place modification} when using music functions.  But
+when music expressions are stored in variables rather than entered
+directly the usual expectation, when passing them to music functions,
+would be that the original value is unmodified.  So when referencing a
+music variable with leading backslash (such as @code{\twentyFour}),
+LilyPond creates a copy of that variable's music value for use in the
+surrounding music expression rather than using the variable's value
+directly.
+
+Therefore, Scheme music expressions written with the @code{#} syntax
+should be used for material that is created @q{from scratch} (or that is
+explicitly copied) rather than being used, instead, to directly
+reference material.
+
+@seealso
+Extending:
+@ref{LilyPond Scheme syntax}.
+
 
 @node Input variables and Scheme
 @subsection Input variables and Scheme
index 226120d936af3d6dc2dfe9a793e1a262b8636d65..2b2fa98a3b3faba7a6356d4cfd12f74616d748f4 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-    Translation of GIT committish: 30e2aa8813df8903dc553ae80c82b8461ffbb381
+    Translation of GIT committish: 8c1840ca28a05b3dad8d595e04d03779ba0a286a
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -18,7 +18,7 @@
 @chapter Références bibliographiques
 @translationof Literature list
 
-Voici des listes de références utilisées dans Lilypond.
+Voici des listes de références utilisées dans LilyPond.
 
 @menu
 * Bibliographie succincte::
index 938212ab929e9fd176dbaaa5100701a5f387a8af..0aa792c663ccbf6fe4e7a54c8f3cfe79f5deacef 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: 12a06e5c29a2f58081068ac7663f0d6a6d4bdf95
+   Translation of GIT committish: 8c1840ca28a05b3dad8d595e04d03779ba0a286a
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
@@ -360,7 +360,7 @@ fonction =
 @noindent
 de manière similaire aux @ref{Définition de fonctions Scheme, fonctions
 Scheme}.  La plupart du temps, le @var{corps} sera constitué d'un
-@ref{Blocs de code LilyPond, bloc de code Lilypond}.
+@ref{Blocs de code LilyPond, bloc de code LilyPond}.
 
 Les différents types des prédicat sont recensés à l'annexe
 @ruser{Types de prédicats prédéfinis}.
index 34fa67f93b14bc23819ebcb3ee46fcca3459f29b..6b5ece6bacb0058ec98b2df7a49fc5c4209f47c2 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: 88a5dbc589b0d0434f8e640467b5ab57d14dc461
+   Translation of GIT committish: 8c1840ca28a05b3dad8d595e04d03779ba0a286a
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
@@ -17,7 +17,7 @@
 @translationof Templates
 
 Cette annexe du manuel d'initiation propose des patrons de partition
-Lilypond, prets à l'emploi.  Il vous suffira d'y ajouter quelques notes,
+LilyPond, prets à l'emploi.  Il vous suffira d'y ajouter quelques notes,
 de lancer LilyPond, et d'aprécier le résultat.
 
 @menu
index 25bcb5ccc32146c8f4e59e96c8969d7e74fb0c0b..b7b9eda34791960b3c719e5eb039892f1951749d 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: a1267e20afa61258ce3031f07d916e0e66ac6582
+   Translation of GIT committish: 8c1840ca28a05b3dad8d595e04d03779ba0a286a
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
@@ -592,7 +592,7 @@ opérations de mise à jour automatisée au fil de l'évolution de la
 syntaxe de LilyPond.  Ensuite, cela met en évidence le minimum requis
 pour pouvoir compiler votre fichier.
 
-Si vous ne le mentionnez pas, Lilypond vous rappellera à l'ordre durant
+Si vous ne le mentionnez pas, LilyPond vous rappellera à l'ordre durant
 la compilation.
 
 @item
index 247928ae7fc9b3d2ae0cc8197f9a07017ae84adf..6bc8d45b76150cbab145d0a9190fcf59a106108d 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: a1267e20afa61258ce3031f07d916e0e66ac6582
+   Translation of GIT committish: 8c1840ca28a05b3dad8d595e04d03779ba0a286a
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
@@ -270,7 +270,7 @@ mise en forme et l'utilisation de ces commandes, nous nous limiterons à
 n'employer que quelques propriétés et valeurs simples, facilement
 compréhensibles.
 
-Lilypond reconnaît comme expression primaire les éléments musicaux tels
+LilyPond reconnaît comme expression primaire les éléments musicaux tels
 que les notes, durées et annotations (les @emph{markups}).  D'autres
 expressions de base comme les nombres, chaînes de caractères et listes
 sont gérées en « mode Scheme », mode appelé en faisant précéder une
@@ -735,9 +735,9 @@ liste des réglages standard ; vous y trouverez la propriété susceptible
 de contrôler l'épaisseur des traits de liaison.
 
 @example
-@code{thickness} (nombre)
-     @code{1.2}
-     Épaisseur de ligne, généralement mesurée en @code{line-thickness}
+thickness (nombre)
+     1.2
+     Épaisseur de ligne, généralement mesurée en line-thickness
 @end example
 
 Voilà qui semble approprié pour changer l'épaisseur (@emph{thickness} en
@@ -2159,7 +2159,7 @@ chacune des notes d'un accord grâce à la commande
 @code{\set fingeringOrientations}.  La syntaxe de cette commande est :
 
 @example
-@code{\set fingeringOrientations = #'([up] [left/right] [down])}
+\set fingeringOrientations = #'([up] [left/right] [down])
 @end example
 
 @noindent
@@ -4265,11 +4265,11 @@ enchâssées dans un @code{\markup} -- ce qui les rend pénibles à saisir
 @code{\revert} ?
 
 @example
-@code{\override Lyrics.LyricText.font-shape = #'italic}
-@code{\override Lyrics.LyricText.font-series = #'bold}
+\override Lyrics.LyricText.font-shape = #'italic
+\override Lyrics.LyricText.font-series = #'bold
 
-@code{\revert Lyrics.LyricText.font-shape}
-@code{\revert Lyrics.LyricText.font-series}
+\revert Lyrics.LyricText.font-shape
+\revert Lyrics.LyricText.font-series
 @end example
 
 Là encore, ce serait extrêmement pénible à saisir, surtout s'il y avait
index 613c91b8811c8f58d5dd302c08b87c7aa018bd90..2e27808c6aba965000df09cc95ed4893c01db8e1 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: a1267e20afa61258ce3031f07d916e0e66ac6582
+   Translation of GIT committish: 97f856e8c577fdf301ac2a15b336eae8729e53f7
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
index 4140c38822f605bfc7e44697254cc8af56dc0373..977c7a4ca2a2c320a36dbe5df4e01d3f204da707 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: a1267e20afa61258ce3031f07d916e0e66ac6582
+   Translation of GIT committish: 8c1840ca28a05b3dad8d595e04d03779ba0a286a
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
@@ -1487,7 +1487,7 @@ autres contextes existants.  Le repositionner au-dessus du contexte
 « principal » demande de le définir ainsi :
 
 @example
-@code{\new Staff \with @{ alignAboveContext = #"principal" @} }
+\new Staff \with @{ alignAboveContext = #"principal" @}
 @end example
 
 Il en va de même pour les contextes temporaires de paroles au sein d'un
@@ -2399,7 +2399,7 @@ les objets du contexte.  C'est là le rôle de l'instruction @code{\tweak},
 dont la syntaxe est :
 
 @example
-\tweak [@var{objet-de-rendu}.]@code{objet-propriété} @code{valeur}
+\tweak [@var{objet-de-rendu}.]objet-propriété valeur
 @end example
 
 Mention de l'@var{objet-de-rendu} est optionnel.
@@ -2961,7 +2961,7 @@ comportement en matière d'orientation ou positionnement ; elles
 sont de la forme
 
 @example
-@code{\xxxUp}, @code{\xxxDown} et @code{\xxxNeutral}
+\xxxUp, \xxxDown et \xxxNeutral
 @end example
 
 @noindent
@@ -4560,7 +4560,7 @@ l'aide de @code{\shape} permet d'éviter les collisions.
 L'instruction @code{\shape} obéit à la syntaxe
 
 @example
-[-]@code{\shape} @var{déplacements} @var{élément}
+[-]\shape @var{déplacements} @var{élément}
 @end example
 
 Ceci aura pour effet de repositionner les points de contrôle de
@@ -4771,7 +4771,7 @@ s'appliquera à la propriété du bandeau.
 La commande @code{\alterBroken} répond à la syntaxe :
 
 @example
-[-]@code{\alterBroken} @var{propriété} @var{valeurs} @var{élément}
+[-]\alterBroken @var{propriété} @var{valeurs} @var{élément}
 @end example
 
 L'argument @var{valeurs} est constitué d'une liste de valeurs, une pour
index dc1d009e7786d5db248dba010751022b9e6f93f3..89b7015f1d3fe87b62bbe013e8666250078ed647 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: 8cce5dd067a8a2bab508f5abebc3955db8837bbf
+   Translation of GIT committish: db92af51a444062c8edaef3afa36f57375b8feeb
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
@@ -861,8 +861,8 @@ Morceaux choisis :
 le mode de chiffrage.  De plus amples informations quant aux différents
 modes sont regroupées à la rubrique @ref{Modes de saisie}.
 
-En mode de saisie, un chiffrage est délimité par @code{<} et
-@code{>}.  La  durée est indiquée après le @code{>} :
+En mode de saisie, un chiffrage est délimité par @code{<} et @code{>}.
+La durée est indiquée après le @code{>} :
 
 @lilypond[verbatim,quote,ragged-right]
 \new FiguredBass {
@@ -872,12 +872,16 @@ En mode de saisie, un chiffrage est délimité par @code{<} et
 }
 @end lilypond
 
-Une altération -- y compris un bécarre -- peut s'attacher à un
-chiffre :
+Une altération -- y compris un bécarre -- permet de modifier l'un des
+degrés, en adjoignant un @code{+} (dièse), un @code{-} (bémol) ou un
+@code{!} (bécarre) au chiffre considéré.  Une altération double
+s'obtient en doublant le modificateur.  Le chiffre est souvent omis
+lorsque la tierce est modifiée, ce qui s'obtient en utilisant un
+@code{_} en lieu et place du chiffre.
 
 @lilypond[verbatim,quote,ragged-right]
 \figures {
-  <7! 6+ 4-> <5++> <3-->
+  <7! 6+ 4-> <5++> <3--> < _+ > < 7 _!>
 }
 @end lilypond
 
@@ -898,7 +902,7 @@ une @qq{petite sixte} :
 }
 @end lilypond
 
-Vous pouvez insérer un espace ou ajouter des crochets :
+Vous pouvez insérer des crochets :
 
 @lilypond[verbatim,quote,ragged-right]
 \figures {
index 88ecaeccade0280df768e9268d89c699f5809747..2d44ed45d6ddb2666564fac155ac222d4200fa69 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-    Translation of GIT committish: ece268fa66e2576c01f33a4a6e1806f44c9f8fa8
+    Translation of GIT committish: 97f856e8c577fdf301ac2a15b336eae8729e53f7
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
index e2af4e0c0886dc90c235351834b7b4ebc6f88baf..b403636bb1d3be44b73998a503c06a5a09bca6b6 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: a1267e20afa61258ce3031f07d916e0e66ac6582
+   Translation of GIT committish: 97f856e8c577fdf301ac2a15b336eae8729e53f7
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
index c951f3499b2f25a4c476f205ebb011d8e7738906..bb1ce12cfa45bfe77b86d83ce258da0c1c320218 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: a1267e20afa61258ce3031f07d916e0e66ac6582
+   Translation of GIT committish: 97f856e8c577fdf301ac2a15b336eae8729e53f7
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
index 00255631d3ebc93abb319ae772fa87d996438306..1fe8301c91a53e83d670ca053237b1f11ea25282 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: a1267e20afa61258ce3031f07d916e0e66ac6582
+   Translation of GIT committish: 8c1840ca28a05b3dad8d595e04d03779ba0a286a
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
@@ -579,7 +579,7 @@ donnée est calculée automatiquement.  Pour ce faire, l'accordage doit
 
 LilyPond possède des accordages prédéfinis pour le banjo, la mandoline,
 la guitare et la guitare basse ainsi que le ukulele et les cordes
-d'orchestre.  Lilypond calcule automatiquement la transposition
+d'orchestre.  LilyPond calcule automatiquement la transposition
 correspondant à ces accordages.  L'exemple ci-dessous est pour guitare
 basse, il sonnera donc une octave en dessous de ce qui est écrit.
 
@@ -688,7 +688,7 @@ de type @emph{pitch}.  Les objets @emph{pitch} sont créés par la fonction
 La fonction @code{\stringTuning} permet de créer de tels objets à partir
 de la saisie d'un accord.
 
-Lilypond calcule automatiquement le nombre de cordes à représenter dans
+LilyPond calcule automatiquement le nombre de cordes à représenter dans
 la tablature (@code{TabStaff}) ainsi que dans le @code{FretBoard} en
 comptant le nombre d'éléments définis dans le @code{stringTunings}.
 
index 040e7eb79b5df8ddb2f5568c934329b70e876625..38a58ffdf3378990849e4a6c9aa36c342f856996 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: 4c31c117565b1c7dd78e606fceb7cba354f2859a
+   Translation of GIT committish: 97f856e8c577fdf301ac2a15b336eae8729e53f7
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
@@ -561,7 +561,7 @@ d'informations.
 @menu
 * Création de titres et entête ou pied de page::
 * Titrages personnalisés::
-* Création de métadonnées PDF::
+* Création des métadonnées des fichiers de sortie::
 * Notes de bas de page::
 * Référencement des numéros de page::
 * Table des matières::
@@ -1176,9 +1176,9 @@ au texte des entête et pied de page définis dans le bloc @code{\paper}.
 En voici la syntaxe :
 
 @example
-@code{variable} = @code{\markup} @{
+variable = \markup @{
   @dots{}
-  @code{\on-the-fly} \@var{procédure} @var{markup}
+  \on-the-fly \@var{procédure} @var{markup}
   @dots{}
 @}
 @end example
@@ -1242,8 +1242,8 @@ Plusieurs conditions @code{\on-the-fly} mentionnées l'une à la suite de
 l'autre se cumulent.  Ainsi, par exemple,
 
 @example
-  @code{\on-the-fly \first-page}
-  @code{\on-the-fly \last-page}
+  \on-the-fly \first-page
+  \on-the-fly \last-page
   @code{@{ \markup @dots{} \fromproperty #'header: @dots{} @}}
 @end example
 
@@ -1258,33 +1258,45 @@ fichiers d'initialisation :
 @file{../ly/titling-init.ly}.
 
 
-@node Création de métadonnées PDF
-@subsection Création de métadonnées PDF
-@translationof Creating PDF metadata
+@node Création des métadonnées des fichiers de sortie
+@subsection Création des métadonnées des fichiers de sortie
+@translationof Creating output file metadata
 
 @cindex PDF metadata
+@cindex MIDI metadata
 @cindex métadonnées PDF
+@cindex métadonnées MIDI
 
 En plus de s'imprimer sur la partition, les variables du bloc
-@code{\header} permettent de générer les métadonnées PDF (informations
-par les lecteurs de PDF en tant que @code{propriétés} du fichier PDF).
+@code{\header} permettent de générer les métadonnées des fichiers de
+sortie.  Dans le cas d'un fichier PDF, ces métadonnées pourront être
+affichées par le lecteur en tant que propriétés du document.  Quel que
+soit le type de fichier de sortie, seules seront analysées les variables
+déterminées dans le @code{\header} du bloc définissant le fichier à
+générer, ainsi que celles des blocs hiérarchiquement supérieurs. Pour les
+fichiers PDF, seules les définitions du @code{\header} en dehors ou au
+niveau d'un bloc @code{\book} affecteront les métadonnées des documents
+PDF ; pour les fichiers MIDI seront utilisées les définitions jusqu'au
+niveau @code{\score}.
+
 Par exemple, affecter « Symphony I » à la propriété @code{title} dans le
-bloc @code{\header} donnera aussi ce titre au document PDF.
+bloc @code{\header} donnera aussi ce titre au document PDF et à la
+séquence MIDI.
 
 @example
-  @code{\header@{}
-    @code{title = "Symphony I"}
-  @code{@}}
+\header@{
+  title = "Symphony I"
+@}
 @end example
 
 Lorsque le titre imprimé diffère de celui affiché en tant que propriété
 du PDF, devra être renseignée la propriété @code{pdftitle}.
 
 @example
-  @code{\header@{}
-    @code{title = "Symphony I"}
-    @code{pdftitle = "Symphony I by Beethoven"}
-  @code{@}}
+\header@{
+  title = "Symphony I"
+  pdftitle = "Symphony I by Beethoven"
+@}
 @end example
 
 Les variables @code{title}, @code{subject}, @code{keywords},
@@ -1300,6 +1312,10 @@ courantes -- @code{ModDate} peut être écrasé par la variable de
 @code{\header} @code{moddate} (ou @code{pdfmoddate}) pour un horodatage
 PDF valide.
 
+La variable @code{title} détermine aussi le nom de la séquence MIDI.
+L'utilisation de la variable @code{midititle} permet d'attribuer à la
+séquence MIDI un nom différent de celui attribué au fichier imprimable.
+
 
 @node Notes de bas de page
 @subsection Notes de bas de page
index db37650e2da4d859c2ecd82988162896e701ee09..c0b513a25ac71664c5e466313c5fd3e297872fe8 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-    Translation of GIT committish: 9d1f4d4d16abf95cccf6bea9cf98c312e55a3ebf
+    Translation of GIT committish: 97f856e8c577fdf301ac2a15b336eae8729e53f7
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
index 86feeb596de47f0c0323c8376dfd78f627c0440f..9ba0160954e8b106f8db7b57d564b11c2107116c 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-    Translation of GIT committish: 53cff5245f682708a6c77d580f418ece2923c2e4
+    Translation of GIT committish: 97f856e8c577fdf301ac2a15b336eae8729e53f7
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
index 29f3b2ce4ef306b2709733d9787b001101c14dfe..ed8e133c811d46672f598f20c5bc36517ebaee62 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: a1267e20afa61258ce3031f07d916e0e66ac6582
+   Translation of GIT committish: 97f856e8c577fdf301ac2a15b336eae8729e53f7
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
@@ -520,7 +520,7 @@ sont les suivants :
 et les suffixes d'altération correspondants :
 
 @quotation
-@multitable {@code{nederlands}} {-@code{s}/-@code{-sharp}} {-@code{ess}/-@code{es}} {-@code{ss}/-@code{x}/-@code{-sharpsharp}} {-@code{essess}/-@code{eses}}
+@multitable {@code{nederlands}} {-@code{s}/-@code{-sharp}} {-@code{f}/-@code{flat}} {-@code{ss}/-@code{x}/-@code{-sharpsharp}} {-@code{essess}/-@code{eses}}
 @headitem Langue
   @tab dièse @tab bémol @tab double dièse @tab double bémol
 @item @code{nederlands}
@@ -1201,6 +1201,14 @@ la commande @code{\set Staff.forceClef = ##t}.
   c'1
 @end lilypond
 
+@noindent
+Pour être plus précis, la commande @code{\clef} n'a pas pour fonction
+d'imprimer une clef ; elle détermine ou modifie une propriété attachée
+au graveur de clefs (le @code{Clef_engraver}), qui décide de son propre
+chef quand doit être affichée une clef dans la portée en cours.  La
+propriété @code{forceClef} ne vient que forcer la décision de réimprimer
+une fois la clef en un point donné.
+
 Le symbole imprimé lors d'un changement de clef est plus petit que la
 clef initiale.  La taille peut toutefois être ajustée.
 
index 0703dcc4f09bb33a83bd91e481ec7e8f38bbe03a..92f80d150ae2324b291d1987f66572ac9c039aef 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: a1267e20afa61258ce3031f07d916e0e66ac6582
+   Translation of GIT committish: 8c1840ca28a05b3dad8d595e04d03779ba0a286a
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
@@ -1765,7 +1765,7 @@ Une métrique composite se crée à l'aide de la fonction
 @code{\compoundMeter}, en suivant la syntaxe :
 
 @example
-\compoundMeter #'@code{(liste de listes)}
+\compoundMeter #'(liste de listes)
 @end example
 
 La construction la plus simple est constituée d'une seule liste, dans
@@ -2824,7 +2824,7 @@ vous invitons dans ce cadre particulier à plutôt utiliser
 @code{\divisioMinima}, comme indiqué au paragraphe @ref{Divisions} du
 chapitre consacré au grégorien.
 
-Lilypond prend en charge la notation kiévienne, qui dispose d'une
+LilyPond prend en charge la notation kiévienne, qui dispose d'une
 barre de mesure spécifique :
 
 @lilypond[quote,fragment,verbatim]
@@ -3504,11 +3504,21 @@ s'y rattachent.
 \relative { c''1 \afterGrace d1 { c16[ d] } c1 }
 @end lilypond
 
-Les petites notes se placent alors aux trois quarts de la durée de la
-note réelle.  Cette fraction peut être changée en définissant
-@code{afterGraceFraction}.  Dans l'exemple suivant, vous pouvez observer
-la différence entre le comportement par défaut, à 15/16 et enfin à la
-moitié de la durée de base.
+Les petites notes se placent alors @strong{après} la note réelle.  Leur
+positionnement est déterminé par une fraction de la durée de la note
+principale.  Cette fraction, fixée par défaut à
+
+@example
+afterGraceFraction = 3/4
+@end example
+
+@noindent
+peut être changée en début de fichier.  Elle peut aussi se définir à la
+suite de la commande @code{afterGraceFraction}.
+
+Dans l'exemple suivant, vous pouvez observer la différence entre le
+comportement par défaut, à @code{15/16} et enfin à la moitié de la durée
+de base.
 
 @lilypond[quote,verbatim]
 <<
@@ -3516,19 +3526,17 @@ moitié de la durée de base.
     c''1 \afterGrace d1 { c16[ d] } c1
   }
   \new Staff \relative {
-    #(define afterGraceFraction (cons 15 16))
-    c''1 \afterGrace d1 { c16[ d] } c1
+    c''1 \afterGrace 15/16 d1 { c16[ d] } c1
   }
   \new Staff \relative {
-    #(define afterGraceFraction (cons 1 2))
-    c''1 \afterGrace d1 { c16[ d] } c1
+    c''1 \afterGrace 1/2 d1 { c16[ d] } c1
   }
 >>
 @end lilypond
 
-Des silences invisibles permettent d'ajuster l'espace entre les petites
-notes et la note réelle.  Nous pourrions positionner ces petites notes à
-sept huitièmes de la durée de la note de base :
+Les effets d'une commande @code{\afterGrace} peuvent aussi s'obtenir à
+l'aide de silences invisibles.  Nous pourrions positionner ces petites
+notes à sept huitièmes de la durée de la note de base :
 
 @lilypond[quote,verbatim]
 \new Voice \relative {
@@ -3787,9 +3795,9 @@ La barre de mesure suivante tombera donc à 9/8 et non à 5/8.
 @end lilypond
 
 @noindent
-Comme le montre cet exemple, @code{ly:make-moment n d} construit une
-durée de n/d fois une ronde. Par conséquent, @code{ly:make-moment 1 8}
-correspond à une croche, et @code{ly:make-moment 7 16} à la durée de
+Comme le montre cet exemple, @code{ly:make-moment n/d} construit une
+durée de n/d fois une ronde. Par conséquent, @code{ly:make-moment 1/8}
+correspond à une croche, et @code{ly:make-moment 7/16} à la durée de
 sept doubles croches.
 
 @seealso
index 73f2742e74bc9738b59c1672c1c68eca8f9565af..bd89ab955cdecb76ca051049fcc5e0ab0604de6b 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @ignore
-   Translation of GIT committish: a1267e20afa61258ce3031f07d916e0e66ac6582
+   Translation of GIT committish: 97f856e8c577fdf301ac2a15b336eae8729e53f7
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
@@ -344,8 +344,8 @@ appliquer.  Ceci ne manque pas de faire apparaître un message
 warning: This voice needs a \voiceXx or \shiftXx setting
 
 @emph{en français :}
-Avertissement : Cette voix requiert un @code{voiceXx} ou un réglage
-@code{\shiftXx}
+Avertissement : Cette voix requiert un voiceXx ou un réglage
+\shiftXx
 @end example
 
 lors de la compilation.  Le déclenchement de cet avertissement peut être
index f677b5c2d046f6e948eed8a1f5512437bbdb4ca4..339c9d448e242650b5eb084f285d5d79a9768eb1 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: 2034ca4fcbed9253b5a85e9360e47d3fe3ff1d09
+   Translation of GIT committish: 97f856e8c577fdf301ac2a15b336eae8729e53f7
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
index c23ac659e6521eed7bb7f4d331b935e620ba771f..072d696a33f8e0a4c7ce11fe7a200ac11ad5f981 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: a1267e20afa61258ce3031f07d916e0e66ac6582
+   Translation of GIT committish: 97f856e8c577fdf301ac2a15b336eae8729e53f7
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
index cc428db791647280526ba016c92aa8f200af478e..b9a33224f1c9f8afcae7c5c9e118702f1796f9ff 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: caa4700b4acbc870158d70ee257efaa723c550f0
+   Translation of GIT committish: 97f856e8c577fdf301ac2a15b336eae8729e53f7
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
@@ -210,11 +210,6 @@ d'ajouter un point aux notes pointées affublées d'un @code{\harmonic}.
 <e a\harmonic>2.  <c g'\harmonic>4
 @end lilypond
 
-@warning{La commande @code{@bs{}harmonic} @strong{doit} être placée
-dans une construction de type accord même s'il n'y a qu'une seule note.
-On utiliserait plutôt la commande @code{@bs{}harmonicsOn} en pareil
-cas.}
-
 @seealso
 Glossaire musicologique :
 @rglos{harmonics}.
index a06b34051f3b8f6141538ce63e5de81852bf20d9..3a88b52bcfbf866365c67885397433fa55c80915 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: caa4700b4acbc870158d70ee257efaa723c550f0
+   Translation of GIT committish: 8c1840ca28a05b3dad8d595e04d03779ba0a286a
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
@@ -421,7 +421,7 @@ voir @ref{Positionnement vertical des paroles}.
 @funindex \addlyrics
 
 La commande @code{\addlyrics} n'est en fait qu'une manière plus aisée
-d'écrire de la musique vocale dans une structure Lilypond plus complexe.
+d'écrire de la musique vocale dans une structure LilyPond plus complexe.
 
 @example
 @{ MUSIQUE @}
@@ -2379,6 +2379,7 @@ passage polyphonique temporaire, est expliquée à la section
 @code{\oneVoice},
 @code{\voiceOne},
 @code{\voiceTwo}.
+@endpredefined
 
 @seealso
 Manuel d'initiation :
@@ -2475,7 +2476,10 @@ du chœur.
 @end lilypond
 
 @predefined
-@code{\dynamicUp}, @code{\dynamicDown}, @code{\dynamicNeutral}.
+@code{\dynamicUp},
+@code{\dynamicDown},
+@code{\dynamicNeutral}.
+@endpredefined
 
 @seealso
 Manuel de notation :
index 2e5ae63fbcc4b88758b04e0423521b5531a95794..c972ed91d3c31461dec53120ac48d862ebfe230e 100644 (file)
@@ -1,4 +1,4 @@
-%% Translation of GIT committish: 8eae9a75fb3ec1d0b6633103c8a652608c8fa630
+%% Translation of GIT committish: db92af51a444062c8edaef3afa36f57375b8feeb
   texidocfr = "
 Pour appréhender la notation, nous l'avons disséquée en éléments
 simples : chaque type de symbole est géré par un module différent.
index 4a9e124e35c7c50b2c9b8b3dc63a6a60eeae4228..f7fddd4746c130d8e967346bfa68b8388722b8f6 100644 (file)
@@ -16,7 +16,7 @@ td { border: 1px solid black; text-align: center; }
 
 @end html
 @end ifhtml
-@emph{Dernière mise à jour Sat Jul  2 15:06:05 UTC 2016
+@emph{Dernière mise à jour Sun Aug  7 13:59:13 UTC 2016
 }
 @multitable @columnfractions  0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667
 
@@ -57,7 +57,7 @@ oui
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab Jean-Charles Malahieude
 @tab 
 @tab 
@@ -183,7 +183,7 @@ oui
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab Jean-Charles Malahieude
 @tab 
 @tab 
@@ -307,7 +307,7 @@ oui
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab John Mandereau
 @*
 Jean-Charles Malahieude
@@ -536,7 +536,7 @@ oui
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab John Mandereau
 @*
 Jean-Charles Malahieude
@@ -594,7 +594,7 @@ oui
 @item
 1.1 Hauteurs
 @*
-5169
+5224
 @tab Frédéric Chiasson
 @*
 Jean-Charles Malahieude
@@ -625,7 +625,7 @@ oui
 @item
 1.2 Rythme
 @*
-6795
+6822
 @tab Frédéric Chiasson
 @*
 Jean-Charles Malahieude
@@ -867,7 +867,7 @@ oui
 @item
 2.1 Musique vocale
 @*
-4975
+4977
 @tab Valentin Villenave
 @*
 Jean-Charles Malahieude
@@ -927,7 +927,7 @@ oui
 @item
 2.3 Cordes non frettées
 @*
-303
+279
 @tab Valentin Villenave
 @*
 Matthieu Jacquot
@@ -958,7 +958,7 @@ oui
 @item
 2.4 Instruments à cordes frettées
 @*
-2820
+2821
 @tab Matthieu Jacquot
 @tab Jean-Charles Malahieude
 @tab 
@@ -1045,7 +1045,7 @@ oui
 @item
 2.7 Notation des accords
 @*
-1931
+1979
 @tab Valentin Villenave
 @*
 Jean-Charles Malahieude
@@ -1159,7 +1159,7 @@ oui
 @item
 3 Généralités en matière d'entrée et sortie
 @*
-12704
+12824
 @tab Jean-Charles Malahieude
 @*
 Valentin Villenave
@@ -1217,7 +1217,7 @@ oui
 @item
 5 Modification des réglages prédéfinis
 @*
-15598
+15597
 @tab Valentin Villenave
 @*
 Jean-Charles Malahieude
@@ -1246,7 +1246,7 @@ oui
 @item
 A Tables du manuel de notation
 @*
-3077
+3079
 @tab Frédéric Chiasson
 @*
 Jean-Charles Malahieude
@@ -1343,7 +1343,7 @@ oui
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab John Mandereau
 @*
 Jean-Charles Malahieude
@@ -1552,7 +1552,7 @@ oui
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab John Mandereau
 @tab 
 @tab 
index 885929d4c7ad55f96961e71a8e5bbc6626f001fb..75f0ee33b52e9e0658bf22b23ff4e0786a50c94a 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 
 @ignore
-   Translation of GIT committish: 88a5dbc589b0d0434f8e640467b5ab57d14dc461
+   Translation of GIT committish: 8c1840ca28a05b3dad8d595e04d03779ba0a286a
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
index 98c8ee1ac9e377f76d466c31ae498001011844d6..4ad3c3db92ded85586a5e0ba57ac39c0791adb08 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage : fr -*-
 @c This file is part of web.texi
 @ignore
-   Translation of GIT committish: ef9512388b15e1e5e2b3592299ffe489ac43abb4
+   Translation of GIT committish: 8c1840ca28a05b3dad8d595e04d03779ba0a286a
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
index 8ebffbf836b8ca4a66d3bb4e1c71ca2fc1a50e21..ceedcaededf2047ef45361caf22b322d01185f36 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*-
 @c This file is part of web.texi
 @ignore
-   Translation of GIT committish: 934175b31d43c95e341b098f12c2e833522a5d45
+   Translation of GIT committish: 8c1840ca28a05b3dad8d595e04d03779ba0a286a
 
    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
@@ -1040,10 +1040,10 @@ retouches, que les musiciens ont utilisé.}
 
 @qq{Merci et encore merci à l'équipe des développeurs pour leur
 admirable travail.  Je n'ai jamais rien vu qui approche le résultat que
-j'obtiens avec Lilypond — je suis absolument convaincu que mes besoins
+j'obtiens avec LilyPond — je suis absolument convaincu que mes besoins
 en terme d'édition musicale seront largement satisfaits par cette
 superbe application.  [@dots{}] une partition de base générée par
-Lilypond [@dots{}] a meilleure mine que la plupart des publications
+LilyPond [@dots{}] a meilleure mine que la plupart des publications
 ❝professionnelles❞ auxquelles je l'ai comparée, aussi bien de chez
 Warner Bros., que même les plus récentes productions des ❝bonnes
 vieilles maisons❞ [@dots{}]}
@@ -1055,7 +1055,7 @@ vieilles maisons❞ [@dots{}]}
 @divClass{testimonial-item}
 @subsubheading Chris Cannam, programmeur en chef du projet @uref{http://www.rosegardenmusic.com/, RoseGarden}
 
-@qq{Lilypond est clairement le ténor brillantissime [de la gravure
+@qq{LilyPond est clairement le ténor brillantissime [de la gravure
 musicale de qualité].}
 @divEnd
 
index f7b908dac8967c70f67e64db9ea44845b67fc3b8..3a564997d0c119828d068144fdabd265a7e4c25c 100644 (file)
@@ -16,7 +16,7 @@ td { border: 1px solid black; text-align: center; }
 
 @end html
 @end ifhtml
-@emph{Last updated Sat Jul  2 15:06:05 UTC 2016
+@emph{Last updated Sun Aug  7 13:59:13 UTC 2016
 }
 @multitable @columnfractions  0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667
 
@@ -59,7 +59,7 @@ yes
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab Hegyi Tamás
 @*
 Harmath Dénes
@@ -185,7 +185,7 @@ partially
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab Harmath Dénes
 @tab 
 @tab 
@@ -312,7 +312,7 @@ no
 @ifhtml
 
 @html
-<span style="background-color: #fcff3c">partially</span>
+<span style="background-color: #fffd3d">partially</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -388,7 +388,7 @@ partially
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab Harmath Dénes
 @tab 
 @tab 
@@ -535,7 +535,7 @@ partially
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab Harmath Dénes
 @tab 
 @tab 
index 73efbec681b5a4ad86974676b1e3ea6bd3177c39..5b897bfd448c7e6481d6ef9c4223c106eafbc181 100644 (file)
@@ -848,7 +848,7 @@ PDF 1095k})
 
 @item
 Erik Sandberg: @emph{A bemeneti nyelv és a formázó szétválasztása a
-GNU Lilypondban}. Diplomaterv, Uppsalai Egyetem, Információtechnológiai
+GNU LilyPondban}. Diplomaterv, Uppsalai Egyetem, Információtechnológiai
 Tanszék, 2006. március
 (@uref{http://lilypond.org/website/pdf/thesis-erik-sandberg.pdf,
 PDF 750k})
@@ -898,7 +898,7 @@ A Linux Journal közzétesz egy cikket
 @uref{http://www.linuxjournal.com/article/8364,
 Schenker-diagramok készítése GNU LilyPonddal}
 címen. Ez egy gyakorlatias cikk igen szép LilyPond grafikákkal.
-A szerző, Kris Shaffer megjegyzi: @qq{A GNU Lilypond gyönyörű kottaképe után a
+A szerző, Kris Shaffer megjegyzi: @qq{A GNU LilyPond gyönyörű kottaképe után a
 kereskedelmi alternatívák másodosztályúnak tűnnek.}
 A cikk elérhető @uref{http://www.linuxjournal.com/article/8583, online}.
 
index b75a4c9f11a7798cbbbf97d615b2989a3c17d647..c25ceaf6fa0d0c4254ba3a92d433ea2427ed576b 100644 (file)
@@ -180,7 +180,7 @@ feladatra alkalmas. Gyönyörködj az alábbi példákban, és meríts ihletet b
 @ignore
 Here is a passage from Franz Liszt's solo piano transcription
 of the Overture to Wagner's @emph{Tannhäuser}. The spacing
-in this example was all performed by Lilypond's formatting
+in this example was all performed by LilyPond's formatting
 algorithms, without tweaks of any kind. It
 handles cross-staff beaming gracefully and puts the system brace
 perfectly around all three staves.
@@ -820,7 +820,7 @@ mutatja a kottát és a LilyPond forrást.
 @ignore
 Import: LilyPond, MIDI
 
-Export: Lilypond, MIDI, ABC, CSound Score File, PDF
+Export: LilyPond, MIDI, ABC, CSound Score File, PDF
 @end ignore
 
 @divEnd
index 76bd48cd2f747821a5487f4ccb73a4c9f90775d9..b198e40c6eca7786c91f39b6d54d0726d5ddc4a1 100644 (file)
@@ -1461,10 +1461,10 @@ installation directory structure.
 
 
 It can be useful to have both the stable and the development versions
-of Lilypond available at once.  One way to do this on GNU/Linux is to
+of LilyPond available at once.  One way to do this on GNU/Linux is to
 install the stable version using the precompiled binary, and run the
 development version from the source tree.  After running @command{make
-all} from the top directory of the Lilypond source files, there will
+all} from the top directory of the LilyPond source files, there will
 be a binary called @code{lilypond} in the @code{out} directory:
 
 @example
index dd89ae504912dd67c7552a9049a5725ce5bf6fac..fafe6ac59ca09dfea902c221deb3d9ef7c226c2c 100644 (file)
@@ -1623,7 +1623,7 @@ partire dal nome, o viceversa.
 
 @smallspace
 
-Vedremo in seguito come cambiare l'output di Lilypond
+Vedremo in seguito come cambiare l'output di LilyPond
 modificando il comportamento degli incisori.
 
 
index 9c940c94836c90fd380755de9959acb3c4efd8c6..75f481421c20f4afb8f23e805ce36f0569e88a5d 100644 (file)
@@ -707,9 +707,9 @@ standard.  Scorrile cercando la proprietà che potrebbe controllare lo spessore
 delle legature di portamento; dovresti trovare
 
 @example
-@code{thickness} (number)
-     @code{1.2}
-     Line thickness, generally measured in @code{line-thickness}
+thickness (number)
+     1.2
+     Line thickness, generally measured in line-thickness
 @end example
 
 Sembra che sia quel che stiamo cercando.  Ci dice che il valore
@@ -2110,7 +2110,7 @@ diteggiatura delle singole note di un accordo usando il comando
 @code{\set fingeringOrientations}.  Il formato di questo comando è:
 
 @example
-@code{\set fingeringOrientations = #'([up] [left/right] [down])}
+\set fingeringOrientations = #'([up] [left/right] [down])
 @end example
 
 @noindent
@@ -4169,11 +4169,11 @@ le parole stesse non si possono usare variabili semplici.  Come
 alternativa possiamo usare i comandi @code{\override} e @code{\revert}?
 
 @example
-@code{\override Lyrics.LyricText.font-shape = #'italic}
-@code{\override Lyrics.LyricText.font-series = #'bold}
+\override Lyrics.LyricText.font-shape = #'italic
+\override Lyrics.LyricText.font-series = #'bold
 
-@code{\revert Lyrics.LyricText.font-shape}
-@code{\revert Lyrics.LyricText.font-series}
+\revert Lyrics.LyricText.font-shape
+\revert Lyrics.LyricText.font-series
 @end example
 
 Anche questi sarebbero molto noiosi da inserire se ci fossero
index 127a381a09d3984456f429cbb8a82bcab319759e..1cd155d37acbbed4f3de6a6106cc8edc6e101c31 100644 (file)
@@ -1432,7 +1432,7 @@ sotto tutti i contesti esistenti.  Per riposizionarlo sopra il contesto
 chiamato @qq{principale}, dovrebbe essere definito in questo modo:
 
 @example
-@code{\new Staff \with @{ alignAboveContext = #"principale" @} }
+\new Staff \with @{ alignAboveContext = #"principale" @}
 @end example
 
 Una situazione simile si pone quando si posiziona un contesto temporaneo
@@ -2555,7 +2555,7 @@ Altrimenti, in molti casi esistono comandi predefiniti per specificare la
 direzione.  Questo hanno la forma
 
 @example
-@code{\xxxUp}, @code{\xxxDown} o @code{\xxxNeutral}
+\xxxUp, \xxxDown o \xxxNeutral
 @end example
 
 @noindent
@@ -4081,7 +4081,7 @@ evitare le collisioni.
 La sintassi di @code{\shape} è
 
 @example
-[-]@code{\shape} @var{spostamenti} @var{elemento}
+[-]\shape @var{spostamenti} @var{elemento}
 @end example
 
 Questo comando riposiziona i punti di controllo di @var{elemento} di quanto
@@ -4284,7 +4284,7 @@ proprietà di un estensore.
 La sintassi di @code{\alterBroken} è:
 
 @example
-[-]@code{\alterBroken} @var{proprietà} @var{valori} @var{elemento}
+[-]\alterBroken @var{proprietà} @var{valori} @var{elemento}
 @end example
 
 L'argomento @var{valori} è una lista di valori, uno per ogni pezzo
@@ -4515,7 +4515,7 @@ deve ritornare @code{#t}.
 
 @item @code{@var{@dots{}musica@dots{}}}
 @tab il normale input LilyPond, usando @code{$} (nei punti in cui sono
-consentiti solo i costrutti Lilypond) o @code{#} (per usarlo come un valore
+consentiti solo i costrutti LilyPond) o @code{#} (per usarlo come un valore
 Scheme o come argomento di una funzione musicale o come musica all'interno
 di liste di musica) per riferirsi agli argomenti (es: @samp{#arg1}).
 @end multitable
index abda7a777deb8af7b95c2e5625ef1eca6644c1e1..e4664f0ac4b8c9bae58cf29ff1a0b60440915c49 100644 (file)
@@ -237,7 +237,7 @@ Se non è specificato alcun blocco @code{\book} nel file di
 input, LilyPond tratterà implicitamente l'intero file come un
 singolo blocco @code{\book}, come è spiegato in @ref{File structure}.
 
-Nel generare molteplici file da un singolo file sorgente, Lilypond
+Nel generare molteplici file da un singolo file sorgente, LilyPond
 controlla che nessuno dei file di output di alcun blocco
 @code{\book} sovrascriva il file di output prodotto da un blocco
 @code{\book} precedente dello stesso file di input.
@@ -283,10 +283,10 @@ genererà
 @funindex \bookOutputSuffix
 @funindex \bookOutputName
 
-Lilypond permette di decidere quali nomi di file debbano essere
+LilyPond permette di decidere quali nomi di file debbano essere
 usati dai vari backend quando questi generano i file di output.
 
-Nella sezione precedente abbiamo visto come Lilypond prevenga i
+Nella sezione precedente abbiamo visto come LilyPond prevenga i
 conflitti di nome quando genera molti file di output da un singolo
 file sorgente.  È possibile anche specificare un proprio suffisso
 per ogni blocco @code{\book}.  Quindi si possono, per esempio,
@@ -1150,9 +1150,9 @@ blocco @code{\paper}, solo se certe condizioni sono soddisfatte, tramite la
 seguente sintassi:
 
 @example
-@code{variabile} = @code{\markup} @{
+variabile = \markup @{
   @dots{}
-  @code{\on-the-fly}  \@var{procedura}  @var{testo}
+  \on-the-fly  \@var{procedura}  @var{testo}
   @dots{}
 @}
 @end example
@@ -1216,8 +1216,8 @@ si utilizzasse l'operatore logico @q{AND} e il testo apparirà solo se tutte
 le condizioni sono vere. Per esempio, queste due condizioni
 
 @example
-  @code{\on-the-fly \first-page}
-  @code{\on-the-fly \last-page}
+  \on-the-fly \first-page
+  \on-the-fly \last-page
   @code{@{ \markup @dots{} \fromproperty #'header: @dots{} @}}
 @end example
 
@@ -1244,9 +1244,9 @@ la proprietà @code{title} del blocco @code{header} @q{Sinfonia I} si
 assegnerà questo titolo anche al documento PDF.
 
 @example
-  @code{\header@{}
-    @code{title = "Sinfonia I"}
-  @code{@}}
+  \header@{
+    title = "Sinfonia I"
+  @}
 @end example
 
 Se si desidera impostare il titolo dell'output su un valore e la proprietà
@@ -1254,10 +1254,10 @@ titolo del PDF su un valore diverso, si può usare @code{pdftitle}, nel
 modo seguente:
 
 @example
-  @code{\header@{}
-    @code{title = "Sinfonia I"}
-    @code{pdftitle = "Sinfonia I di Beethoven"}
-  @code{@}}
+  \header@{
+    title = "Sinfonia I"
+    pdftitle = "Sinfonia I di Beethoven"
+  @}
 @end example
 
 Le variabili @code{title}, @code{subject}, @code{keywords},
@@ -3697,7 +3697,7 @@ lilypond file.ly >display.txt
 @funindex \void
 @c tradotto un po' liberamente, dato che il paragrafo in inglese è poco chiaro:
 @c https://lists.gnu.org/archive/html/lilypond-user/2015-12/msg00141.html
-Nota bene che Lilypond non soltanto mostra in console l'espressione musicale, ma
+Nota bene che LilyPond non soltanto mostra in console l'espressione musicale, ma
 la interpreta anche (infatti l'espressione musicale di @code{\displayLilyMusic}
 appare nell'output oltre a essere mostrata in console).  Basta inserire
 @code{\displayLilyMusic} in file esistenti, senza doverne modificare le
index 53ef1ad1f4b560e1ac91bc0497ca316910276ac2..7c2d839a457beb4cdf249fb20c256a6c018ad0b1 100644 (file)
@@ -477,7 +477,7 @@ non si riferisce ad alcuno standard.
 @cindex lingua, nomi delle note in un'altra
 @cindex lingua, nomi delle altezze in un'altra
 
-Lilypond comprende insiemi predefiniti di nomi di note e alterazioni in
+LilyPond comprende insiemi predefiniti di nomi di note e alterazioni in
 altre lingue.  La scelta della lingua si fa solitamente all'inizio del
 file; l'esempio seguente è scritto in notazione italiana:
 
index 77cc962d501981f16a2ab776a8ecf0c8586d44f8..3cff8040ae311fe92d18e1f720c0bc82f6fcc2fc 100644 (file)
@@ -1730,7 +1730,7 @@ Si può dare a ogni rigo la sua indicazione di tempo indipendente spostando
 Si creano con la funzione @code{\compoundMeter}.  La sintassi è:
 
 @example
-\compoundMeter #'@code{(lista di liste)}
+\compoundMeter #'(lista di liste)
 @end example
 
 La struttura più semplice è una singola lista, dove l'@emph{ultimo} numero
@@ -2780,7 +2780,7 @@ Tuttavia,dato che questi segni di spunta sono tipicamente usati nella notazione
 gregoriana, è preferibile usare @code{\divisioMinima}, come è descritto
 nella sezione @ref{Divisiones} della parte dedicata al canto gregoriano.
 
-Lilypond supporta la notazione gregoriana russa e fornisce una stanghetta speciale per
+LilyPond supporta la notazione gregoriana russa e fornisce una stanghetta speciale per
 questo tipo di notazione:
 @lilypond[quote,fragment,verbatim]
 f'1 \bar "k"
index 6d03c64e40ab284d4f2a040c004cc88f70ea9f26..c60a1452bd09b15cda1b2ba1d0df83ec8b6f4a84 100644 (file)
@@ -16,7 +16,7 @@ td { border: 1px solid black; text-align: center; }
 
 @end html
 @end ifhtml
-@emph{Ultimo aggiornamento Sat Jul  2 15:06:05 UTC 2016
+@emph{Ultimo aggiornamento Sun Aug  7 13:59:13 UTC 2016
 }
 @multitable @columnfractions  0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667
 
@@ -30,7 +30,7 @@ Cambiamenti in LilyPond
 @item
 Section titles
 @*
-2393
+2449
 @tab Federico Bruni
 @tab 
 @tab 
@@ -57,7 +57,7 @@ sì
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab Federico Bruni
 @tab 
 @tab 
@@ -123,7 +123,7 @@ sì
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab Federico Bruni
 @tab Luca Rossetto Casel
 @tab 
@@ -324,7 +324,7 @@ sì
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab Federico Bruni
 @tab 
 @tab 
@@ -378,7 +378,7 @@ sì
 @item
 1.1 Altezze
 @*
-5169
+5224
 @tab Federico Bruni
 @tab Luca Rossetto Casel
 @tab 
@@ -395,17 +395,17 @@ sì
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">sì</span>
+<span style="background-color: #25fe1f">parzialmente</span>
 @end html
 @end ifhtml
 @ifnothtml
-sì
+parzialmente
 @end ifnothtml
 @tab pre-GDP
 @item
 1.2 Ritmi
 @*
-6795
+6822
 @tab Federico Bruni
 @tab Luca Rossetto Casel
 @tab 
@@ -422,11 +422,11 @@ sì
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">sì</span>
+<span style="background-color: #2cff20">parzialmente</span>
 @end html
 @end ifhtml
 @ifnothtml
-sì
+parzialmente
 @end ifnothtml
 @tab pre-GDP
 @item
@@ -503,11 +503,11 @@ sì
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">sì</span>
+<span style="background-color: #25fe1f">parzialmente</span>
 @end html
 @end ifhtml
 @ifnothtml
-sì
+parzialmente
 @end ifnothtml
 @tab pre-GDP
 @item
@@ -621,7 +621,7 @@ sì
 @item
 2.1 Musica vocale
 @*
-4975
+4977
 @tab Federico Bruni
 @tab 
 @tab 
@@ -675,7 +675,7 @@ sì
 @item
 3 Input e output
 @*
-12704
+12824
 @tab Federico Bruni
 @tab 
 @tab 
@@ -692,11 +692,11 @@ sì
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">sì</span>
+<span style="background-color: #2cff20">parzialmente</span>
 @end html
 @end ifhtml
 @ifnothtml
-sì
+parzialmente
 @end ifnothtml
 @tab pre-GDP
 @item
@@ -729,7 +729,7 @@ sì
 @item
 5 Modifica delle impostazioni predefinite
 @*
-15598
+15597
 @tab Federico Bruni
 @tab 
 @tab 
@@ -756,7 +756,7 @@ sì
 @item
 A Tabelle del manuale della notazione
 @*
-3077
+3079
 @tab Federico Bruni
 @tab 
 @tab 
@@ -849,7 +849,7 @@ sì
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab Federico Bruni
 @tab Luca Rossetto Casel
 @tab 
@@ -1050,7 +1050,7 @@ sì
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab Federico Bruni
 @tab Luca Rossetto Casel
 @tab 
index ac306ccb6c2884290e015355fad87c67510147ea..1535ff89334de7bfa5d7ad6f477d422a27d0adf7 100644 (file)
@@ -741,7 +741,7 @@ dal metodo automatizzato di @command{lilypond-book}.
 @cindex LuaTex
 @cindex lyluatex
 
-Per integrare l'output di Lilypond in un documento, oltre a
+Per integrare l'output di LilyPond in un documento, oltre a
 @code{lilypond-book}, esiste un programma alternativo che può
 essere usato con LuaTex:
 @uref{https://github.com/jperon/lyluatex/blob/master/README.en.md,lyluatex}.
@@ -829,7 +829,7 @@ usare anche la funzione di ritaglio dei sistemi; si veda
 
 Alcuni utenti hanno creato file che possono essere inclusi in LilyPond
 tramite @code{\include} per produrre certi effetti.  Quelli elencati
-in questo capitolo fanno parte di Lilypond.  Maggiori informazioni
+in questo capitolo fanno parte di LilyPond.  Maggiori informazioni
 in @ruser{Lavorare coi file di input}.
 
 @menu
@@ -845,7 +845,7 @@ in @ruser{Lavorare coi file di input}.
 @cindex Articulate, progetto
 
 Il progetto @uref{http://www.nicta.com.au/articulate,Articulate} è un
-tentativo di migliorare l'output MIDI di Lilypond.  Aggiusta la durata
+tentativo di migliorare l'output MIDI di LilyPond.  Aggiusta la durata
 delle note (che non si trovano in una legatura di portamento) in base
 ai segni di articolazione attaccati ad esse.  Per esempio, @q{staccato}
 dimezza il valore della nota, @q{tenuto} assegna alla nota la sua
index 420777e3cd6810a5c4840d74e06660b607b7a4d9..848be1e56301a2f18d37ee4ccd8c6d615a2cf7ea 100644 (file)
@@ -142,8 +142,8 @@ tutorial.
 
 @subheading Output
 
-I documenti per \verb+lilypond-book+ possono combinare liberamente musica e testo.
-Ad esempio,
+I documenti per @command{lilypond-book} possono combinare liberamente musica
+e testo.  Ad esempio,
 
 @lilypond
 \relative {
@@ -1228,7 +1228,7 @@ esempio,
 </p>
 
 <p>
-Ancora un po' di Lilypond, questa volta con delle opzioni:
+Ancora un po' di LilyPond, questa volta con delle opzioni:
 
 <lilypond fragment quote staffsize=26 verbatim>
 a4 b c d
index e04da75106bc1c10959f6304e9efc7527601651c..f61466cbf1c6204c81e79ca81889a021263f6668 100644 (file)
@@ -270,7 +270,7 @@ che usano LilyPond.
 LilyPond gira su tutte le piattaforme più note: GNU/Linux, MacOS X, e
 Windows.  LilyPond include un'ampia documentazione e centinaia di file
 di esempio.  C'è un'attiva comunità di utenti che risponde alle
-domande nella mailing list internazionale dedicata agli utenti Lilypond,
+domande nella mailing list internazionale dedicata agli utenti LilyPond,
 offrendo gentilmente il proprio aiuto.  I tempi di risposta sono solitamente
 molto brevi e spesso vengono suggerite brillanti soluzioni dei problemi
 segnalati.  Grazie alla stretta interazione col team di sviluppo, tali
@@ -308,7 +308,7 @@ già deciso di provare LilyPond, per prima cosa informati sul nostro
 
 @subheading Begli esempi
 
-Lilypond è uno strumento potente e flessibile per scrivere ogni tipo
+LilyPond è uno strumento potente e flessibile per scrivere ogni tipo
 di musica. Dai un'occhiata alla galleria di esempi e lasciati ispirare!
 
 @divEnd
@@ -318,7 +318,7 @@ di musica. Dai un'occhiata alla galleria di esempi e lasciati ispirare!
 @subheading Musica Classica
 
 Questo brano per organo di J.S. Bach rappresenta un tipico esempio di
-progetto Lilypond.
+progetto LilyPond.
 
 @exampleImage{bach-bwv610}
 @divEnd
@@ -337,7 +337,7 @@ mediante tratti spezzati.
 @divClass{column-center-middle-color2}
 @subheading Musica Antica
 
-Lilypond supporta anche vari tipi di notazione antica, come
+LilyPond supporta anche vari tipi di notazione antica, come
 questo passaggio di canto gregoriano.
 
 @exampleImage{ancient-headword}
@@ -346,7 +346,7 @@ questo passaggio di canto gregoriano.
 @divClass{column-center-middle-color2}
 @subheading Musica Moderna
 
-I compositori contemporanei ritengono che Lilypond sia molto adatto a
+I compositori contemporanei ritengono che LilyPond sia molto adatto a
 visualizzare notazioni non convenzionali.  Ecco un estratto dal @emph{Čáry} di
 Trevor Bača, per flauto basso non accompagnato.
 
@@ -374,7 +374,7 @@ completa, riduzione per canto e pianoforte, e parte per violino.
 @divClass{column-center-middle-color2}
 @subheading Intavolatura
 
-Lilypond supporta la notazione per intavolatura, che può essere personalizzata
+LilyPond supporta la notazione per intavolatura, che può essere personalizzata
 per adattarsi a ogni strumento che ne fa uso.  Il rigo
 dell'intavolatura viene generato automaticamente dalle note inserite per
 il pentagramma.
@@ -397,7 +397,7 @@ I colori sono stati aggiunti per migliorare la visibilità.
 @subheading Output personalizzato
 
 Un breve estratto del Klavierstück II di Stockhausen per dimostrare  la
-capacità di Lilypond di fornire output personalizzato.
+capacità di LilyPond di fornire output personalizzato.
 
 @exampleImage{Stockhausen_Klavierstueck2}
 @divEnd
@@ -406,11 +406,11 @@ capacità di Lilypond di fornire output personalizzato.
 @divClass{column-center-middle-color2}
 @subheading Musica Vocale
 
-Lilypond è eccellente per la musica vocale di tutti i generi, dagli inni
+LilyPond è eccellente per la musica vocale di tutti i generi, dagli inni
 sacri all'opera.  Ecco un mottetto medievale con requisiti leggermente
 insoliti.  Il tenor è scritto in un metro diverso dagli altri,
 ma deve essere allineato come se fosse nello stesso tempo.
-Lilypond gestisce questo aspetto in modo molto elegante.  Si notino anche gli
+LilyPond gestisce questo aspetto in modo molto elegante.  Si notino anche gli
 incipit con chiave in stile Vaticana, i gambi barrati a indicare note plicate,
 e le parentesi quadre sulle sezioni legate.
 
@@ -420,7 +420,7 @@ e le parentesi quadre sulle sezioni legate.
 @divClass{column-center-middle-color2}
 @subheading Applicazioni didattiche
 
-Lilypond è molto indicato anche per applicazioni didattiche.
+LilyPond è molto indicato anche per applicazioni didattiche.
 Ecco un esempio di un semplice esercizio di contrappunto.
 
 @exampleImage{theory}
@@ -440,7 +440,7 @@ personalizzati per adattarsi a quasi ogni situazione.
 @divClass{column-center-middle-color2}
 @subheading Grandi Progetti
 
-Lilypond è ottimo anche per progetti ad ampio respiro come opere o lavori per
+LilyPond è ottimo anche per progetti ad ampio respiro come opere o lavori per
 un'orchestra sinfonica al completo.  Inoltre l'input testuale permette
 una maggiore accessibilità -- questo esempio è stato realizzato
 da Hu Haipeng, un compositore cieco.
@@ -612,7 +612,7 @@ che per le partiture pubblicate.
 @divClass{column-left-top}
 @subheading Concerti
 
-Lilypond è stato usato per esecuzioni in tutto il mondo.
+LilyPond è stato usato per esecuzioni in tutto il mondo.
 In evidenza:
 
 @divClass{keep-bullets}
@@ -852,7 +852,7 @@ Dicembre 2005
 intitolato @uref{http://www.linuxjournal.com/article/8364, Crea
 dei fantastici grafici Schenker con GNU LilyPond}.  È un articolo
 approfondito e pratico con attraenti grafici di LilyPond.  L'autore
-Kris Shaffer commenta @qq{GNU Lilypond genera una grafica splendida
+Kris Shaffer commenta @qq{GNU LilyPond genera una grafica splendida
 che fa sembrare le alternative commerciali di second'ordine.}
 
 @item
@@ -951,7 +951,7 @@ quanto riguarda la velocità, la facilità d'uso e la resa grafica!}
 
 @qq{[@dots{}dopo la prima prova d'orchestra] ho ricevuto molti
 complimenti per la qualità degli spartiti.  Ancora più
-importante: sebbene Lilypond fornisca molti trucchi per migliorare
+importante: sebbene LilyPond fornisca molti trucchi per migliorare
 l'aspetto degli spartiti, quello che l'orchestra ha ricevuto da me è
 l'output grezzo e privo di ritocchi.}
 @divEnd
@@ -962,9 +962,9 @@ l'output grezzo e privo di ritocchi.}
 
 @qq{grazie e complimenti al team di sviluppo per il suo incredibile
 lavoro.  Non ho mai visto niente che possa avvicinarsi all'output di
-Lilypond -- sono assolutamente sicuro che le mie necessità nel campo
+LilyPond -- sono assolutamente sicuro che le mie necessità nel campo
 dell'editoria musicale saranno soddisfatte oltre ogni aspettativa usando
-questo fantastico programma.  [@dots{}] l'output predefinito di Lilypond [@dots{}] ha
+questo fantastico programma.  [@dots{}] l'output predefinito di LilyPond [@dots{}] ha
 un aspetto migliore delle recenti pubblicazioni @q{professionali} con cui
 l'ho confrontato (ovvero quasi qualsiasi spartito della Warner Bros, e anche molti
 dei più recenti delle @q{vecchie case editrici}). [@dots{}]}
@@ -976,7 +976,7 @@ dei più recenti delle @q{vecchie case editrici}). [@dots{}]}
 @divClass{testimonial-item}
 @subsubheading Chris Cannam, principale programmatore di @uref{http://www.rosegardenmusic.com/, RoseGarden}
 
-@qq{Lilypond è ovviamente il super gorilla [della
+@qq{LilyPond è ovviamente il super gorilla [della
 grande tipografia musicale].}
 @divEnd
 
@@ -1006,7 +1006,7 @@ farlo.  Sono sicuro che nessun prodotto commerciale può avvicinarsi a questo.}
 @divClass{testimonial-item}
 @subsubheading David Bobroff, trombone basso, Iceland Symphony Orchestra
 
-@qq{Credo che Lilypond sia un grande programma [@dots{}] Più imparo LilyPond
+@qq{Credo che LilyPond sia un grande programma [@dots{}] Più imparo LilyPond
 e più mi piace!}
 @divEnd
 
@@ -1321,7 +1321,7 @@ Emacs è un editor di testo che ha la capacità di comprendere molti
 diversi linguaggi informatici.  Emacs è un editor molto estendibile
 e può essere usato come ambiente di sviluppo integrato (IDE).
 C'è una @q{modalità lilypond} che fornisce le definizioni del
-linguaggio per poter lavorare con i file sorgente di Lilypond.
+linguaggio per poter lavorare con i file sorgente di LilyPond.
 Uno sviluppatore ha scritto
 @uref{https://github.com/nsceaux/lyqi,lyqi}, una
 modalità primaria di Emacs.
index 303625837f7526e5d878fbf9b25aecdeab2fa641..f3ecdf55d1a47ac17f2bfe6c1be55067d3a0e6f3 100644 (file)
@@ -652,9 +652,9 @@ Slur へのリンクを選択すると、Slur のプロパティがリスト ア
 させていくと、以下が見つかります:
 
 @example
-@code{thickness} (number)
-     @code{1.2}
-     Line thickness, generally measured in @code{line-thickness}
+thickness (number)
+     1.2
+     Line thickness, generally measured in line-thickness
 @end example
 
 これが太さを変更するプロパティのようです。@c
@@ -2078,7 +2078,7 @@ a4 g c a |
 このコマンドのフォーマットは以下のようなものです:
 
 @example
-@code{\set fingeringOrientations = #'([up] [left/right] [down])}
+\set fingeringOrientations = #'([up] [left/right] [down])
 @end example
 
 @noindent
@@ -3988,11 +3988,11 @@ lhMusic = \relative {
 使うことはできないでしょうか?
 
 @example
-@code{\override Lyrics.LyricText.font-shape = #'italic}
-@code{\override Lyrics.LyricText.font-series = #'bold}
+\override Lyrics.LyricText.font-shape = #'italic
+\override Lyrics.LyricText.font-series = #'bold
 
-@code{\revert Lyrics.LyricText.font-shape}
-@code{\revert Lyrics.LyricText.font-series}
+\revert Lyrics.LyricText.font-shape
+\revert Lyrics.LyricText.font-series
 @end example
 
 これらも、強調する必要のある単語がたくさんある場合、入力するのが@c
index b9aa8ebc5431665b02f535ce4f0135c4a5adff3a..537877abaeecbef370f7c919a1c4c4a076c2a307 100644 (file)
@@ -1361,7 +1361,7 @@ squashedPosition = #0
 @qq{main} というコンテキストの上に配置し直すには以下のようにします:
 
 @example
-@code{\new Staff \with @{ alignAboveContext = #"main" @} }
+\new Staff \with @{ alignAboveContext = #"main" @}
 @end example
 
 @code{ChoirStaff} のような複数の譜のレイアウトで一時的な歌詞を配置する場合
@@ -4300,7 +4300,7 @@ Web でベジエ曲線が描かれる様子を示すアニメーションを@c
 @code{\shape} の構文は以下の通りです:
 
 @example
-[-]@code{\shape} @var{displacements} @var{item}
+[-]\shape @var{displacements} @var{item}
 @end example
 
 これは @var{item} の制御ポイントを @var{displacements} だけ移動させます。@c
index c7429f51f8aa972609998943ebdbc23f3d28783b..42f6efcab1dd71d116d9b4599434a7f97682d43d 100644 (file)
@@ -1090,9 +1090,9 @@ scoreTitleMarkup = \markup @{ \column @{
 以下の構文を用います:
 
 @example
-@code{variable} = @code{\markup} @{
+variable = \markup @{
   ...
-  @code{\on-the-fly}  #@var{procedure}  @var{markup}
+  \on-the-fly  #@var{procedure}  @var{markup}
   ...
 @}
 @end example
@@ -1155,9 +1155,9 @@ scoreTitleMarkup = \markup @{ \column @{
 できます。例えば、
 
 @example
-  @code{\on-the-fly #first-page}
-  @code{\on-the-fly #last-page}
-  @code{@{ \markup ... \fromproperty #'header: ... @}}
+  \on-the-fly #first-page
+  \on-the-fly #last-page
+  @{ \markup ... \fromproperty #'header: ... @}
 @end example
 
 これは、出力が単一のページかどうかを判断します。
@@ -2188,7 +2188,7 @@ LilyPond は UTF-8 エンコーディング
 LilyPond は多言語テキストを、Pango ライブラリを用いて、@c
 レイアウトして描画します。
 
-Lilypond は入力のエンコーディング変換をまったく行いません。@c
+LilyPond は入力のエンコーディング変換をまったく行いません。@c
 これは非 ASCII 文字を含むすべてのテキスト
  -- タイトル、歌詞テキストあるいは演奏指示 --
 を UTF-8 でエンコードして入力する必要があるということを意味します。@c
index 2f91192bb6a91d75cf21d39b17557ab16eebeacf..4193aa328b56e8e78c2f5af64c53f7774bc9e352 100644 (file)
@@ -1712,7 +1712,7 @@ cis4 d cis! d
 構文は以下の通りです:
 
 @example
-\compoundMeter #'@code{(list of lists)}
+\compoundMeter #'(list of lists)
 @end example
 
 最も簡単な構成は単一のリストであり、@c
@@ -3212,7 +3212,7 @@ c1 | c | c | c
 @emph{acciaccatura} のようにスラッシュ付きの符幹を持つが@c
 スラーは付かない装飾小音符を譜刻することもできます。
 
-Lilypond はさらに 2 つ特殊なタイプの装飾小音符をサポートします:
+LilyPond はさらに 2 つ特殊なタイプの装飾小音符をサポートします:
 @emph{acciaccatura} (長さを持たない装飾小音符で、@c
 スラッシュ付きの符幹を持つスラーでつなげられる小さな音符) と
 @emph{appoggiatura} (一定の比率で主音符から演奏時間をとり、@c
index a7bcbafe56ca14599a09cd99a5124c645207f042..dad396f71759151a88fc30d341035d568c69d071 100644 (file)
@@ -3128,7 +3128,7 @@ Essay on automated music engraving:
 @subsection プロポーショナル ノーテーション
 @translationof Proportional notation
 
-Lilypond はプロポーショナル ノーテーションをサポートします。@c
+LilyPond はプロポーショナル ノーテーションをサポートします。@c
 この記譜法では、各音符は演奏時間に相当する水平方向のスペースをとります。@c
 このタイプの水平スペースは、方眼紙上の水平方向スペースと同等です。@c
 20 世紀後半、21 世紀前半の楽譜の中には、@c
index 16a47dbd1cb389ceb1b6daa95a9af52aae458db6..dc089be323ae33fbb444c32676191ed4e1094c64 100644 (file)
@@ -16,7 +16,7 @@ td { border: 1px solid black; text-align: center; }
 
 @end html
 @end ifhtml
-@emph{最終更新日 Sat Jul  2 15:06:05 UTC 2016
+@emph{最終更新日 Sun Aug  7 13:59:13 UTC 2016
 }
 @multitable @columnfractions  0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667
 
@@ -59,7 +59,7 @@ Yoshiki Sawada
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab Masamichi Hosoda
 @*
 Yoshiki Sawada
@@ -266,7 +266,7 @@ partially
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab Yoshiki Sawada
 @tab 
 @tab 
@@ -320,7 +320,7 @@ LilyPond --- \TITLE\
 @item
 1.1 ピッチ
 @*
-5169
+5224
 @tab Yoshiki Sawada
 @tab 
 @tab 
@@ -337,7 +337,7 @@ LilyPond --- \TITLE\
 @ifhtml
 
 @html
-<span style="background-color: #91ff2e">partially</span>
+<span style="background-color: #97ff2f">partially</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -347,7 +347,7 @@ partially
 @item
 1.2 リズム
 @*
-6795
+6822
 @tab Yoshiki Sawada
 @tab 
 @tab 
@@ -364,7 +364,7 @@ partially
 @ifhtml
 
 @html
-<span style="background-color: #cdfe36">partially</span>
+<span style="background-color: #dbff38">partially</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -445,7 +445,7 @@ partially
 @ifhtml
 
 @html
-<span style="background-color: #91ff2e">partially</span>
+<span style="background-color: #97ff2f">partially</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -565,7 +565,7 @@ partially
 @item
 2.1 声楽
 @*
-4975
+4977
 @tab Yoshiki Sawada
 @tab 
 @tab 
@@ -619,7 +619,7 @@ partially
 @item
 2.3 フレットの無い弦楽器
 @*
-303
+279
 @tab Yoshiki Sawada
 @tab 
 @tab 
@@ -636,7 +636,7 @@ partially
 @ifhtml
 
 @html
-<span style="background-color: #83fe2c">partially</span>
+<span style="background-color: #91ff2e">partially</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -646,7 +646,7 @@ partially
 @item
 2.4 フレットのある弦楽器
 @*
-2820
+2821
 @tab Yoshiki Sawada
 @tab 
 @tab 
@@ -690,7 +690,7 @@ partially
 @ifhtml
 
 @html
-<span style="background-color: #5bff27">partially</span>
+<span style="background-color: #62ff28">partially</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -727,7 +727,7 @@ partially
 @item
 2.7 和音記譜法
 @*
-1931
+1979
 @tab Yoshiki Sawada
 @tab 
 @tab 
@@ -744,7 +744,7 @@ partially
 @ifhtml
 
 @html
-<span style="background-color: #47ff24">partially</span>
+<span style="background-color: #4efe25">partially</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -808,24 +808,24 @@ partially
 @item
 3 入出力全般
 @*
-12704
+12824
 @tab Yoshiki Sawada
 @tab 
 @tab 
 @ifhtml
 
 @html
-<span style="background-color: #dfef77">一部 (94 %)</span>
+<span style="background-color: #dfef77">一部 (95 %)</span>
 @end html
 @end ifhtml
 @ifnothtml
-一部 (94 %)
+一部 (95 %)
 @end ifnothtml
 @tab 
 @ifhtml
 
 @html
-<span style="background-color: #ffdd42">partially</span>
+<span style="background-color: #ffda43">partially</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -852,7 +852,7 @@ partially
 @ifhtml
 
 @html
-<span style="background-color: #e8fe39">partially</span>
+<span style="background-color: #efff3a">partially</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -862,7 +862,7 @@ partially
 @item
 5 デフォルトを変更する
 @*
-15598
+15597
 @tab Yoshiki Sawada
 @tab 
 @tab 
@@ -879,7 +879,7 @@ partially
 @ifhtml
 
 @html
-<span style="background-color: #91ff2e">partially</span>
+<span style="background-color: #97ff2f">partially</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -957,7 +957,7 @@ Yoshiki Sawada
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab Masamichi Hosoda
 @*
 Yoshiki Sawada
@@ -1113,7 +1113,7 @@ partially
 @ifhtml
 
 @html
-<span style="background-color: #7dff2b">partially</span>
+<span style="background-color: #83fe2c">partially</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -1166,7 +1166,7 @@ Yoshinobu Ishizaki
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab Masamichi Hosoda
 @*
 Yoshiki Sawada
index 980d2a5cf06a91f66c8f6f4ff6fa422a868a9847..c0bfd3f1ef85fc6a01d41b57ab794c0c706858b9 100644 (file)
@@ -184,7 +184,7 @@ forfiles /s /p "C:\Documents\My Scores" /M *.ly /c "cmd /c lilypond @@file"
 
 
 @node LilyPond の基本的なコマンド ライン オプション
-@unnumberedsubsec Lilypond の基本的なコマンド ライン オプション
+@unnumberedsubsec LilyPond の基本的なコマンド ライン オプション
 @translationof Basic command line options for LilyPond
 
 @cindex Invoking @command{lilypond} (@command{lilypond} を呼び出す)
index 7fa0d615ae5f24126797270b40db384408fc1f41..ba880085f023229cba8a9b42c1bd4b36c4313fc5 100644 (file)
@@ -298,7 +298,7 @@ LilyPond を使ったオンラインツールがいくつかあります。
 LilyPond は一般的なプラットフォーム全て
 (GNU/Linux, MacOS, そして Windows) で動きます。@c
 LilyPond には広範囲のドキュメントと数百の実例ファイルが付属します。@c
-Lilypond ユーザー メーリング リストで質問に答えてくれる@c
+LilyPond ユーザー メーリング リストで質問に答えてくれる@c
 活発なユーザ コミュニティがあります。@c
 開発チームは問題が早期に解決されるよう活動しています。@c
 通常はすぐに回答がありますし、しばしば報告された問題に対する@c
@@ -452,7 +452,7 @@ LilyPond は聖歌からオペラまですべての種類の声楽に対して
 少し変わった要求をする中世のモテットを示します。@c
 テナー ボイスの拍子は他と異なりますが、@c
 同じ拍子であるかのように揃っています。@c
-Lilypond はこれをすっきりと処理します
+LilyPond はこれをすっきりと処理します
 ヴァチカン様式の音部記号、ゆらぎのある音符を表すスラッシュ付きの@c
 符幹、ある特定の音符グループ上の連結線ににも注目してください。
 
@@ -1022,7 +1022,7 @@ LilyPond が、スピード、使い易さ、見栄えにおいて、
 @qq{[..最初のオーケストラリハーサルの後で] 私は楽譜の出来について@c
 たくさんの賛辞をいただきました。@c
 重要なのは、@c
-Lilypondには楽譜の見栄えをより良くするための数多くの方法があるのですが、@c
+LilyPondには楽譜の見栄えをより良くするための数多くの方法があるのですが、@c
 私がオーケストラに渡したのは@c
 基本的に生の、そのままの出力結果だったということです。}
 @divEnd
@@ -1032,10 +1032,10 @@ Lilypondには楽譜の見栄えをより良くするための数多くの方法
 @subsubheading Kieren MacMillan, 作曲家 (カナダ トロント)
 
 @qq{この素晴らしい仕事をした開発チームに感謝と賛辞の意を。@c
-Lilypondで得られる結果に近い物は他ではありません
+LilyPondで得られる結果に近い物は他ではありません
 -- この偉大なアプリケーションは、私の楽譜出版の必要性に対して、@c
 期待以上の結果を間違いなくもたらしてくれます。@c
-[..] 基本的に、いじっていない Lilypond の出力は [..]
+[..] 基本的に、いじっていない LilyPond の出力は [..]
 私が比較した最近の @q{プロ} の出版物
 (Warner Bros. の楽譜、それから @q{老舗} の最近の楽譜の大多数)
 よりも良いです。[..]}
index 001f4136a3611b0bbcae893883da126fc384c4d1..b014ee5b47146d0feb11d6e98a555fcc0628f6bb 100644 (file)
@@ -692,9 +692,9 @@ through them looking for a property that might control the heaviness of
 slurs, and you should find
 
 @example
-@code{thickness} (number)
-     @code{1.2}
-     Line thickness, generally measured in @code{line-thickness}
+thickness (number)
+     1.2
+     Line thickness, generally measured in line-thickness
 @end example
 
 This looks a good bet to change the heaviness.  It tells us that
@@ -2054,7 +2054,7 @@ individual notes in a chord is possible by using the
 command is:
 
 @example
-@code{\set fingeringOrientations = #'([up] [left/right] [down])}
+\set fingeringOrientations = #'([up] [left/right] [down])
 @end example
 
 @noindent
@@ -4066,11 +4066,11 @@ themselves prevents their use in simple variables.  As an
 alternative can we use @code{\override} and @code{\revert} commands?
 
 @example
-@code{\override Lyrics.LyricText.font-shape = #'italic}
-@code{\override Lyrics.LyricText.font-series = #'bold}
+\override Lyrics.LyricText.font-shape = #'italic
+\override Lyrics.LyricText.font-series = #'bold
 
-@code{\revert Lyrics.LyricText.font-shape}
-@code{\revert Lyrics.LyricText.font-series}
+\revert Lyrics.LyricText.font-shape
+\revert Lyrics.LyricText.font-series
 @end example
 
 These would also be extremely tedious to enter if there were many
index 9cb5772de4779ddecab0157be17807f6ce8e0f48..b6970ac606452a10e78532b8c5e2bd1319bff5fb 100644 (file)
@@ -94,8 +94,8 @@ use Encode qw(decode);
 
 my $LY_LANGUAGES = {};
 $LY_LANGUAGES->{'ca'} = {
-    'Back to Documentation Index' => '',
-    '<p>Gràcies a ${webdev_link} per allotjar ${lily_site}.' => '',
+    'Back to Documentation Index' => 'Torna a l\'índex de la documentació',
+    '<p>Thanks to ${webdev_link} for hosting ${lily_site}.' => '<p>Agraïm a ${webdev_link} l\'allotjament de ${lily_site}.',
 };
 
 $LY_LANGUAGES->{'cs'} = {
@@ -147,6 +147,141 @@ $LY_LANGUAGES->{'zh'} = {
 
 # FIXME: request the translations below then send them to texi2html/texinfo devs
 
+$LANGUAGES->{'ca'} = {
+                       '  The buttons in the navigation panels have the following meaning:' => '  Els botons als panells de navegació tenen els significats següents:',
+                       '  where the @strong{ Example } assumes that the current position is at @strong{ Subsubsection One-Two-Three } of a document of the following structure:' => '  on l\'@strong{exemple} suposa que la posició actual és a la @strong{ Subsubsecció U-Dos-Tres } d\'un document a l\'estructura següent:',
+                       ' Up ' => ' Amunt ',
+                       '(outside of any element)' => '(fora de qualsevol element)',
+                       '(outside of any node)' => '(fora de qualsevol node)',
+                       '@b{{quotation_arg}:} ' => '@b{{quotation_arg}:} ',
+                       '@cite{{book}}' => '@cite{{book}}',
+                       '@{No value for `{value}\'@}' => '@{Cap valor per a `{value}\'@}',
+                       'About' => 'Quant a',
+                       'About (help)' => 'Quant a (ajuda)',
+                       'About This Document' => 'Quant a aquest document',
+                       'April' => 'Abril',
+                       'August' => 'Agost',
+                       'Back' => 'Enrere',
+                       'Back section in previous file' => 'Secció enrere al fitxer previ',
+                       'Beginning of this chapter or previous chapter' => 'Inici d\'aquest capítol o capítul previ',
+                       'Button' => 'Botó',
+                       'Contents' => 'Continguts',
+                       'Cover (top) of document' => 'Portada (part superior) del document',
+                       'Current' => 'Actual',
+                       'Current Position' => 'Posició actual',
+                       'Current section' => 'Secció actual',
+                       'December' => 'Desembre',
+                       'FastBack' => 'Enrere ràpid',
+                       'FastForward' => 'Endavant ràpid',
+                       'February' => 'Febrer',
+                       'First' => 'Primera',
+                       'First section in reading order' => 'Primera secció en ordre de lectura',
+                       'Following' => 'Següent',
+                       'Following node' => 'Node següent',
+                       'Footnotes' => 'Notes a peu de pàgina',
+                       'Forward' => 'Endavant',
+                       'Forward section in next file' => 'Secció següent al fitxer següent',
+                       'From 1.2.3 go to' => 'De 1.2.3 ves a',
+                       'Go to' => 'Ves a',
+                       'Index' => 'Índex',
+                       'Index Entry' => 'Entrada de l\'índex',
+                       'January' => 'Gener',
+                       'July' => 'Juliol',
+                       'Jump to' => 'Salta a',
+                       'June' => 'June',
+                       'Last' => 'Última',
+                       'Last section in reading order' => 'Última secció en ordre de lectura',
+                       'March' => 'Març',
+                       'May' => 'Maig',
+                       'Menu:' => 'Menú',
+                       'Name' => 'Nom',
+                       'Next' => 'Següent',
+                       'Next chapter' => 'Capítol segúent',
+                       'Next file' => 'Fitxer següent',
+                       'Next node' => 'Node següent',
+                       'Next section in reading order' => 'Secció següent en ordre de lectura',
+                       'Next section on same level' => 'Secció següent al mateix nivell',
+                       'NextFile' => 'Fitxer següent',
+                       'Node following in node reading order' => 'Node següent en ordre de lectura',
+                       'Node up' => 'Node amunt',
+                       'NodeNext' => 'Node següent',
+                       'NodePrev' => 'Node anterior',
+                       'NodeUp' => 'Node superior',
+                       'November' => 'Novembre',
+                       'October' => 'Octubre',
+                       'Overview' => 'Panoràmica',
+                       'Prev' => 'Previ',
+                       'PrevFile' => 'Fitxer previ',
+                       'Previous' => 'Anterior',
+                       'Previous file' => 'Fitxer anterior',
+                       'Previous node' => 'Node anterior',
+                       'Previous section in reading order' => 'Secció anterior en ordre de lectura',
+                       'Previous section on same level' => 'Secció prèvia al mateix nivell',
+                       'Section' => 'Secció',
+                       'Section One' => 'Secció u',
+                       'See ' => 'Vegeu',
+                       'See @cite{{book}}' => 'Vegeu @cite{{book}}',
+                       'See section `@asis{}`{section_name}\'@asis{}\' in @cite{{book}}' => 'Vegeu la secció  `@asis{}`{section_name}\'@asis{}\' a @cite{{book}}',
+                       'See section `{section}\' in @cite{{book}}' => 'Vegeu la secció `{section}\' a @cite{{book}}',
+                       'See section {reference_name}' => 'Vegeu la secció {reference_name}',
+                       'See {node_file_href}' => 'Vegeu {node_file_href}',
+                       'See {node_file_href} @cite{{book}}' => 'Vegeu {node_file_href} @cite{{book}}',
+                       'See {node_file_href} section `{section}\' in @cite{{book}}' => 'Vegeu {node_file_href} a la secció `{section}\' a @cite{{book}}',
+                       'See {reference_name}' => 'Vegeu {reference_name}',
+                       'See {ref}' => 'Vegeu {ref}',
+                       'See {title_ref}' => 'Vegeu {title_ref}',
+                       'September' => 'Setembre',
+                       'Short Table of Contents' => 'Índex brevu',
+                       'Short table of contents' => 'Índex breu',
+                       'Subsection One-Four' => 'Subsecció U-Quatre',
+                       'Subsection One-One' => 'Subsecció U-U',
+                       'Subsection One-Three' => 'Subsecció U-Tres',
+                       'Subsection One-Two' => 'Subsecció U-Dos',
+                       'Subsubsection One-Two-Four' => 'Subsubseció U-Dos-Quatre',
+                       'Subsubsection One-Two-One' => 'Subsubsecció U-Dos-U',
+                       'Subsubsection One-Two-Three' => 'Subsubsecció U-Dos-Tres',
+                       'Subsubsection One-Two-Two' => 'Subsubsecció U-Dos-Dos',
+                       'T2H_today' => '%s, %d %d',
+                       'Table of Contents' => 'Índex',
+                       'Table of contents' => 'Índex',
+                       'The node you are looking for is at {href}.' => 'El node que esteu buscant és {href}',
+                       'This' => 'Aquest',
+                       'This document was generated on @i{{date}} using @uref{{program_homepage}, @i{{program}}}.' => 'Aquest document s\'ha generat el @i{{date}} amb @uref{{program_homepage}, @i{{program}}}.',
+                       'This document was generated using @uref{{program_homepage}, @emph{{program}}}.' => 'Aquest document sha generat amb @uref{{program_homepage}, @emph{{program}}}.',
+                       'Top' => 'Inici',
+                       'Untitled Document' => 'Document sense títol',
+                       'Up' => 'Amunt',
+                       'Up node' => 'Node superior',
+                       'Up section' => 'Secció supeior',
+                       'current' => 'actual',
+                       'on @emph{{date}}' => 'el @emph{{date}}',
+                       'section `@asis{}`{section_name}\'@asis{}\' in @cite{{book}}' => 'secció `@asis{}`{section_name}\'@asis{}\' a @cite{{book}}',
+                       'section `{section}\' in @cite{{book}}' => 'secció `{section}\' a @cite{{book}}',
+                       'see ' => 'vegeu ',
+                       'see @cite{{book}}' => 'vegeu @cite{{book}}',
+                       'see section `@asis{}`{section_name}\'@asis{}\' in @cite{{book}}' => 'vegeu la secció `@asis{}`{section_name}\'@asis{}\' a @cite{{book}}',
+                       'see section `{section}\' in @cite{{book}}' => 'vegeu la secció `{section}\' a @cite{{book}}',
+                       'see section {reference_name}' => 'vegeu la secció {reference_name}',
+                       'see {node_file_href}' => 'vegeu {node_file_href}',
+                       'see {node_file_href} @cite{{book}}' => 'vegeu {node_file_href} @cite{{book}}',
+                       'see {node_file_href} section `{section}\' in @cite{{book}}' => 'vegeu {node_file_href} a la secció `{section}\' a @cite{{book}}',
+                       'see {reference_name}' => 'vegeu {reference_name}',
+                       'see {ref}' => 'vegeu {ref}',
+                       'see {title_ref}' => 'vegeu {title_ref}',
+                       '{acronym_like} ({explanation})' => '{acronym_like} ({explanation})',
+                       '{name} of {class}' => '{name} de {class}',
+                       '{name} on {class}' => '{name} a {class}',
+                       '{node_file_href}' => '{node_file_href}',
+                       '{node_file_href} @cite{{book}}' => '{node_file_href} @cite{{book}}',
+                       '{node_file_href} section `{section}\' in @cite{{book}}' => '{node_file_href} a la secció `{section}\' a @cite{{book}}',
+                       '{reference_name}' => '{reference_name}',
+                       '{ref}' => '{ref}',
+                       '{style} {number}' => '{style} {number}',
+                       '{style}: {caption_first_line}' => '{style}: {caption_first_line}',
+                       '{style}: {shortcaption_first_line}' => '{style}: {shortcaption_first_line}',
+                       '{title_ref}' => '{title_ref}'
+                     };
+
 $LANGUAGES->{'it'} = {
                        '  The buttons in the navigation panels have the following meaning:' => '  I bottoni nei pannelli di navigazione hanno il seguente significato:',
                        '  where the @strong{ Example } assumes that the current position is at @strong{ Subsubsection One-Two-Three } of a document of the following structure:' => '  dove @strong{ Esempio } assume che l\'attuale posizione è alla @strong{ Sottosottosezione Uno-Due-Tre } di un documento che ha la seguente struttura:',
index 7654521ebb718a0915046871c7287da8dae45517..20dad7f93f3396ac0ab3c754b51309fdc96cbd94 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.19.21"
+\version "2.19.46"
 
 \header {
   tagline = ##f
@@ -85,7 +85,6 @@ offCr = {
   \context {
     \type "Engraver_group"
     \name "MarkLine"
-    \consists "Output_property_engraver"
     \consists "Axis_group_engraver"
     \consists "Mark_engraver"
     \consists "Metronome_mark_engraver"
index 6e567a56d555a52f71e94cfac997ba50c2dd07fb..cc09619dccbfdc4f3fe6a3838c5fb3f639e8df98 100644 (file)
@@ -186,16 +186,20 @@ For LilyPond version @version{}
 @c it doesn't matter, but a future implementation will probably
 @c add some code which needs this restriction.
 
+@c @raggedright can be enabled as soon as texinfo 5.x or larger
+@c is in use for Gub and LilyDev 3.
+
 @macro predefined
 @noindent
 @subsubheading Predefined commands
+@c @raggedright
 @end macro
 
 @c Due to a bug in texi2html (texi2html.pl CVS versions <= 1.245)
 @c the next macro must not be empty.
 
 @macro endpredefined
-@c
+@c @end raggedright
 @end macro
 
 
diff --git a/Documentation/misc/announce-v2.12.ca.html b/Documentation/misc/announce-v2.12.ca.html
new file mode 100644 (file)
index 0000000..df4fbba
--- /dev/null
@@ -0,0 +1,122 @@
+<!--
+    Translation of GIT Committish: b368624ce125eb38ac5e635a88c0ccf414a3937f
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  Refer to `UPDATE A TRANSLATION'
+    in README for details.
+!-->
+
+<title>Está disponible LilyPond 2.12 &ldquo;Rune&rdquo;</title>
+
+<h1>Ya está disponible LilyPond versión 2.12: la edición del duodécimo aniversario</h1>
+
+Diciembre de 2008.
+
+<p>Nos llena de orgullo anunciar el lanzamiento de GNU/LilyPond 2.12
+&ldquo;Rune&rdquo;.
+</p>
+
+<p>Nuestra alegría está teñida de tristeza, pues el que fue durante
+mucho tiempo colaborador del proyecto LilyPond y amigo, Rune Zedeler,
+falleció el pasado 2 de julio de 2008. Esta edición está dedicada a su
+memoria.
+</p>
+
+<p>Rune era programador y músico, e hizo valiosos aportes a
+LilyPond. Había estado implicado en el proyecto durante los últimos
+seis años, y nuestra comunidad le echará de menos con gran añoranza.
+</p>
+
+<h2>Principales novedades</h2>
+
+<ul>
+<li>Se ha mejorado enormemente la detección de colisiones. Los objetos
+fuera del pentagrama ahora se evitan automáticamente, de forma que se
+necesitan muchos menos ajustes manuales para obtener un resultado
+satisfactorio.</li>
+
+<li>La documentación también se ha reescrito casi por completo durante
+ el "Proyecto Magno de Documentación" (GDP) que ha durado un año, y la
+ documentación en línea es ahora mucho más atractiva visualmente y
+ también se navega por ella mucho más fácilmente. El programa está
+ traducido a 6 idiomas, y la documentación completa está disponible
+ en español, y parcialmente en francés y alemán. ¡Nunca ha sido tan
+ fácil empezar con 'Pond!</li>
+
+<li>Se han incorporado casi 30 nuevas funcionalidades, entre ellas los
+ diagramas transportables de posiciones de guitarra, alteraciones
+ microtonales y un conversor <tt>musicxml2ly</tt> muy mejorado, y se han
+ corregido casi 200 bugs. Para ver los detalles de estas nuevas
+ posibilidades, diríjase
+ a <tt><a href="http://lilypond.org/doc/v2.12/Documentation/topdocs/NEWS.html">http://lilypond.org/doc/v2.12/Documentation/topdocs/NEWS.html</a></tt>.
+</li>
+</ul>
+<br>
+
+<p>¡Feliz tipografía musical!</p>
+
+<h2>LilyPond le llega por cortesía de...</h2>
+
+<h3>Equipo de desarrollo</h3>
+
+<p>Han-Wen Nienhuys  &ndash; Desarrollos esenciales<br>
+Jan Nieuwenhuizen  &ndash; Desarrollos esenciales<br>
+Joe Neeman         &ndash; Desarrollos esenciales<br>
+Graham Percival    &ndash; Editor de la documentación y Maestro desinsectador<br>
+Valentin Villenave &ndash; Editor del repositorio LSR y Maestro desinsectador<br>
+Mats Bengtsson     &ndash; Gurú de apoyo<br>
+John Mandereau     &ndash; Maestro de la infraestructura de traducción</p>
+
+<h3>Colaboradores</h3>
+
+<p>Rune Zedeler,
+Maximilian Albert,
+Milan Zamazal,
+Reinhold Kainhofer (desarrollo de <tt>musicxml2ly</tt>),
+Erlend Aasland,
+Stan Sanderson (revisor de las regresiones),
+Neil Puttock.</p>
+
+<h3>Proyecto Magno de Documentación</h3>
+
+<p>Trevor Daniels     &ndash; Editor adjunto de la documentación<br>
+Andrew Hawryluk, Carl Sorensen, Eyolf Østrem, Francisco Vila,
+Jay Hamilton, Jonathan Kulp, Joseph Harfouch, Patrick McCarty,
+Ralph Palmer, Till Rettig  &ndash; trabajos en la Referencia de la Notación<br>
+Kurt Kroon         &ndash; Actualizaciones del glosario, trabajos en la Referencia de la Notación<br>
+Alard de Boer      &ndash; Formato<br>
+Michael Rasmussen  &ndash; Formato<br>
+Trevor Bača        &ndash; Encabezamientos evocadores<br>
+Reinhold Kainhofer &ndash; Asistencia técnica<br>
+Neil Puttock       &ndash; Editor de fragmentos de código, asistencia técnica.</p>
+
+<h3>Traductores</h3>
+
+<p>Clytie Siddall, Damien Heurtebise, Francisco Vila, Heikki Junes,
+Jean-Charles Malahieude, John Mandereau, Nicolas Klutchnikoff, Till
+Rettig, Valentin Villenave.</p>
+
+<h3>Patrocinadores</h3>
+
+<p>Mike Amundsen, Trevor Bača.</p>
+
+<h3>Cazadores de fallos; sugerencias</h3>
+
+<p>Adam James Wilson, Alard de Boer, Alex Rolex, Andy Haupt, Arvid
+Grøtting, Bertalan Fodor, Benjamin Drung, Cameron Horsburgh, Carl
+Sorensen, Christian Hitz, Christian Herzberg, David Bobroff, David
+Griffel, Daniel Hulme, Daniel Johnson, Dominic Neumann, Eduardo
+Vieira, Frédéric Chiasson, Georg Dummer, Georg Romstorfer, Gilles
+Thibault, Hernán J. González, Hu Haipeng, Jay Anderson, James
+Kilfinger, Jean-Marie Mouchel, Jean-Yves Baudais, Jesús Guillermo
+Andrade, Jonathan Henkelman, Kazuhiro Suzuki, Kevin Dalley, Laura
+Conrad, Luc Wehli, Maarten Hijzelendoorn, Marc Lanoiselée, Mark
+Polesky, Matthijs Frankeno, Martijn Vromans, Marnen Laibow-Koser,
+Maximilian Albert, Mirosław Doroszewski, Mike Coleman, Neil Puttock,
+Nicolas Mayencourt, Nicolas Sceaux, Orm Finnendahl, Peter Budny,
+Phillip Kirlin, Pierre-Emmanuel Brame, Ralph Palmer, Renaud Flavigny,
+Rick Hansen, Risto Vääräniemi, Robin Bannister, Roland Goretzki, Rune
+Zedeler, Ruud van Silfhout, Sean Reed, Steven Weber, Tomas Sauer,
+Thomas Scharkowski, Trevor Bača, Vivian Barty-Taylor, Werner Lemberg,
+Wilbert Berendsen, William Oram, Yota Moteuchi, Zack Charter, and
+Zoltan Selyem.</p>
diff --git a/Documentation/misc/browser-language.ca.html b/Documentation/misc/browser-language.ca.html
new file mode 100644 (file)
index 0000000..84f8bda
--- /dev/null
@@ -0,0 +1,72 @@
+<!--
+    Translation of GIT Committish: c9c8a55b173151df04eb864643fb740a850e4988
+
+    When revising a translation, copy the HEAD committish of the
+    version that you are working on.  Refer to `UPDATE A TRANSLATION'
+    in README for details.
+!-->
+
+<h1>Ús de la selecció automàtica de la llengua</h1>
+
+<P>
+  Per obtenir la selecció automàtica de la llengua, heu d'indicar-li
+  al navegador quin és la vostra llengua preferida. La forma de fer-lo
+  depèn del navegador que esteu fent servir.
+</P>
+
+<!--
+    Instructions taken from http://www.debian.org/intro/cn
+    Do not copy the whole page, we use only about 50 of the 400 lines.
+    !-->
+
+<DL>
+
+  <DT>Mozilla Firefox versió 0.9 i posteriors</DT>
+  <DD>
+    GNU/Linux
+    <PRE>
+      Edita -&gt; Preferències -&gt; Avançat -&gt; General -&gt; Llengües
+    </PRE>
+  </DD>
+  <DD>
+    Microsoft Windows
+    <PRE>
+      Eines -&gt; Opcions -&gt; General -&gt; Llengües
+    </PRE>
+    A versions anteriores heu d'anar a <KBD>about:config</KBD> i canviar el
+    el valor de <KBD>intl.accept_languages</KBD>.
+  </DD>
+
+  <DT>Mozilla / Netscape 4.x i posteriors</DT>
+  <DD>
+    <PRE>
+      Edita -&gt; Preferències -&gt; Navegador -&gt; Llengües
+    </PRE>
+    Nota: amb el Netscape 4.x heu d'assegurar-vos de seleccionar
+    la llengua a partir de les alternatives possibles. Algunes persones
+    han comunicat problemes perquè van entrar la llengua a mà.
+  </DD>
+
+  <DT>Microsoft Internet Explorer</DT>
+  <DD>
+    Microsoft Windows
+    <PRE>
+      Eines (o Vista o Extres) -&gt; Opcions d'Internet -&gt; (General) Llengües
+    </PRE>
+  </DD>
+  <DD>
+    MacOS
+    <PRE>
+      Edita -&gt; Preferències -&gt; Navegador Web -&gt; Llengua/Fonts
+    </PRE>
+  </DD>
+</DL>
+
+<BR>
+Aquesta pàgina està agafada de
+<A HREF="http://www.debian.org/intro/cn">Debian</A>, y como tal, está sujeta a
+
+Copyright &copy; 1997-2005
+<A HREF="http://www.spi-inc.org/">SPI</A>; Consulteu els <A href="http://www.debian.org/license" rel="copyright">termes de la llicència</A>.
+<BR>
+Debian és una marca registrada de Software in the Public Interest, Inc.
index 51bac2fbc28882dc581e37519f7e8831255eb0ba..541e2962b562e2b56a6f3e65377d97f5dfca9533 100644 (file)
@@ -601,9 +601,9 @@ through them looking for a property that might control the heaviness of
 slurs, and you should find
 
 @example
-@code{thickness} (number)
-     @code{1.2}
-     Line thickness, generally measured in @code{line-thickness}
+thickness (number)
+     1.2
+     Line thickness, generally measured in line-thickness
 @end example
 
 This looks a good bet to change the heaviness.  It tells us that
@@ -1955,7 +1955,7 @@ individual notes in a chord is possible by using the
 command is:
 
 @example
-@code{\set fingeringOrientations = #'([up] [left/right] [down])}
+\set fingeringOrientations = #'([up] [left/right] [down])
 @end example
 
 @noindent
@@ -3769,11 +3769,11 @@ themselves prevents their use in simple variables.  As an
 alternative can we use @code{\override} and @code{\revert} commands?
 
 @example
-@code{\override Lyrics.LyricText.font-shape = #'italic}
-@code{\override Lyrics.LyricText.font-series = #'bold}
+\override Lyrics.LyricText.font-shape = #'italic
+\override Lyrics.LyricText.font-series = #'bold
 
-@code{\revert Lyrics.LyricText.font-shape}
-@code{\revert Lyrics.LyricText.font-series}
+\revert Lyrics.LyricText.font-shape
+\revert Lyrics.LyricText.font-series
 @end example
 
 These would also be extremely tedious to enter if there were many
index 0cfb74437744e0e81d8da43e6a9586c8916b7c8d..524b717627ccfdf39601c1ca82abef22f49b7b2a 100644 (file)
@@ -16,7 +16,7 @@ td { border: 1px solid black; text-align: center; }
 
 @end html
 @end ifhtml
-@emph{Meest recente update Sat Jul  2 15:06:05 UTC 2016
+@emph{Meest recente update Sun Aug  7 13:59:13 UTC 2016
 }
 @multitable @columnfractions  0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667
 
@@ -57,7 +57,7 @@ gedeeltelijk
 @item
 LilyPond -- \TITLE\
 @*
-1139
+1138
 @tab Jan Nieuwenhuizen
 @tab 
 @tab 
@@ -182,7 +182,7 @@ gedeeltelijk (95 %)
 @ifhtml
 
 @html
-<span style="background-color: #83fe2c">gedeeltelijk</span>
+<span style="background-color: #8aff2d">gedeeltelijk</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -258,7 +258,7 @@ gedeeltelijk
 @item
 LilyPond -- \TITLE\
 @*
-1139
+1138
 @tab Jan Nieuwenhuizen
 @tab Tineke de Munnik
 @tab 
index d45ea1361beebc240b50e19c259abe36bceee12a..9ba487b72f1f15d38138571dc640e6318f5283f7 100644 (file)
@@ -15,7 +15,7 @@
 @node Inleiding
 @unnumbered Inleiding
 @translationof Introduction
+
 @divClass{column-center-top}
 @subheading Ons Doel
 @imageFloat{flat-design,png,right}
@@ -211,9 +211,9 @@ actieve gebruikersgroep die antwoorden geeft op de
 lilypond-user mailinglijst, terwijl het ontwikkelingsteam
 ervoor zorgt dat problemen snel worden opgelost.
 
+
 @subsubheading Verbeterde editors
+
 Verscheidene ontwikkelaars, zelf actieve gebruikers van
 LilyPond, hebben ook gereedschappen geschreven die speciaal
 bedoeld zijn om het invoeren van LilyPond-bestanden sneller
@@ -228,7 +228,7 @@ vinden in @ref{Eenvoudiger bewerken}.
 
 Nog steeds niet overtuigd?  Bekijk dan maar eens enkele
 specifieke @ref{Voorbeelden}.  Heb je al besloten LilyPond
-te gaan proberen, lees dan eerst over onze 
+te gaan proberen, lees dan eerst over onze
 @ref{Tekstinvoer}.
 @divEnd
 
@@ -710,7 +710,7 @@ Association}'s jaarblad, legt de Franse componist en LilyPond-bijdrager
 Valentin Villenave uit waarom Vrije licenties, en in het bijzonder
 LilyPond-gegraveerde partituren, van instrumenteel belang zijn in
 het voor iedereen toegankelijk maken van genoteerde muziek.
+
 @item
 februari 2008
 
@@ -832,7 +832,7 @@ hun gegraveerde versie niet half zo gelikt is als de mijne!}
 @qq{Hoewel ik [LilyPond] nog niet zo goed ken, ben ik
 @strong{erg} onder de indruk.  Ik heb het programma gebruikt
 om een motet van Josquin Desprez in te voeren in mensurale
-notatie.  Lilypond overtreft zonder twijfel en met gemak
+notatie.  LilyPond overtreft zonder twijfel en met gemak
 alle andere muzieknotatieprogramma's voor wat betreft
 snelheid, gebruiksgemak en schoonheid!}
 @divEnd
@@ -843,7 +843,7 @@ snelheid, gebruiksgemak en schoonheid!}
 
 @qq{[..na de eerste orkestrepetitie] kreeg ik heel veel
 complimenten over de kwaliteit van de partituren.  En wat
-nog veel mooier is: terwijl Lilypond allerlei manieren
+nog veel mooier is: terwijl LilyPond allerlei manieren
 biedt om te zorgen dat de partituren er nog mooier uitzien,
 kreeg het orkest van mij slechts de ruwe, ongewijzigde
 LilyPond-output.}
@@ -853,10 +853,10 @@ LilyPond-output.}
 @subsubheading Kieren MacMillan, componist (Toronto, Canada)
 @qq{Dank en lof voor het ontwikkelteam voor hun fantastische
 werk.  Ik heb nog nooit iets gezien wat maar in de buurt
-komt van de output die ik bereik met Lilypond -- Ik ben er
+komt van de output die ik bereik met LilyPond -- Ik ben er
 zeker van dat dit fantastische programma aan al mijn
 muziekpublicatie-wensen kan voldoen en deze zelfs zal
-overtreffen. [..]  hoofdzakelijk pure Lilypond output [..]
+overtreffen. [..]  hoofdzakelijk pure LilyPond output [..]
 ziet er beter uit dan de meeste recente @q{professionele}
 uitgaven waarmee ik het heb vergeleken (q.v., zo ongeveer
 elke Warner Bros. partituur, en zelfs een groot deel van de
@@ -902,7 +902,7 @@ enigszins in de buurt kan komen.}
 @divClass{testimonial-item}
 @subsubheading David Bobroff, bastrombonist, Iceland Symphony Orchestra
 
-@qq{Ik vind Lilypond fantastisch [..]  Hoe beter ik het
+@qq{Ik vind LilyPond fantastisch [..]  Hoe beter ik het
 programma leer kennen, hoe mooier ik het vind!}
 @divEnd
 
@@ -1128,7 +1128,7 @@ zie @ref{Eenvoudiger bewerken}.
 @subheading En nu?
 
 Je bent nu zover om @ref{Download, LilyPond te downloaden}.
-Nog steeds niet overtuigd?  
+Nog steeds niet overtuigd?
 Lees over @ref{Eenvoudiger bewerken}.
 @divEnd
 
@@ -1360,7 +1360,7 @@ constraint-gebaseerde programmeertaal.
 LilyKDE3 voor KDE 3.5 en lilypond-KDE4 voor KDE 4.1.
 
 @item
-@uref{https://sourceforge.net/projects/noteedit.berlios/,NoteEdit}, dat 
+@uref{https://sourceforge.net/projects/noteedit.berlios/,NoteEdit}, dat
 @uref{http://www.musicxml.com/xml.html,MusicXML} importeerde, is geforkt
 in
 @uref{http://vsr.informatik.tu-chemnitz.de/staff/jan/nted/nted.xhtml,NtEd}
@@ -1393,7 +1393,7 @@ beschreven in @ref{Achtergrond}.
 
 @subheading Legalese
 
-@divClass{legal} 
+@divClass{legal}
 
 All logos and product images are copyright and trademark
 acknowledged.
index 714584210af7d2dc7026a1b7561b71287cc19820..7e442244269dca60ae48055a8e13521671661024 100644 (file)
@@ -682,7 +682,7 @@ mensural notation or coloratio sections in white mensural notation.
 Because note head style does not influence flag count, in
 this style a semiminima should be notated as @code{a8*2}, not
 @code{a4}, otherwise it will look like a minima.
-The multiplier can be different if coloratio is used e.g. to notate
+The multiplier can be different if coloratio is used, e.g., to notate
 triplets.
 
 Use @code{semipetrucci} style to draw half-colored
@@ -1471,7 +1471,7 @@ with any of the following commands:
 @funindex \linea
 @code{\linea}.
 
-@item Ligatures, properly speaking (i.e. notes joined together), are
+@item Ligatures, properly speaking (i.e., notes joined together), are
 produced by placing one of the joining commands @code{\pes} or
 @code{\flexa}, for upwards and downwards movement, respectively,
 @emph{between} the notes to be joined.
@@ -1525,7 +1525,7 @@ Liquescent neumes
 
 Another main category of notes in Gregorian chant is the so-called
 liquescent neumes.  They are used under certain circumstances at
-the end of a syllable which ends in a @q{liquescent} letter, i.e.
+the end of a syllable which ends in a @q{liquescent} letter, i.e.,
 the sounding consonants that can hold a tone (the nasals, l, r, v,
 j, and their diphthong equivalents).  Thus, the liquescent neumes
 are never used alone (although some of them can be produced), and
@@ -1554,7 +1554,7 @@ with the corresponding modifier, @code{\quilisma},
 Virtually, within the ligature delimiters @code{\[} and @code{\]},
 any number of heads may be accumulated to form a single ligature,
 and head prefixes like @code{\pes}, @code{\flexa}, @code{\virga},
-@code{\inclinatum}, etc. may be mixed in as desired.  The use of
+@code{\inclinatum}, etc., may be mixed in as desired.  The use of
 the set of rules that underlies the construction of the ligatures
 in the above table is accordingly extrapolated.  This way,
 infinitely many different ligatures can be created.
@@ -2637,7 +2637,7 @@ typical scenarios are outlined, with suggestions of solutions.
 These involve:
 
 @itemize
-@item how to make incipits (i.e. prefatory material to indicate
+@item how to make incipits (i.e., prefatory material to indicate
 what the original has looked like) to modern transcriptions of
 mensural music;
 @item how to achieve the @emph{Mensurstriche} layout frequently
@@ -2697,7 +2697,7 @@ produced.  If no instrument name is required then use
 @emph{Mensurstriche} (@q{mensuration lines}) is the accepted term
 for bar lines that are drawn between the staves of a system but
 not through the staves themselves.  It is a common way to preserve
-the rhythmic appearance of the original, i.e. not having to break
+the rhythmic appearance of the original, i.e., not having to break
 syncopated notes at bar lines, while still providing the
 orientation aids that bar lines give.
 
@@ -2835,7 +2835,7 @@ verba = \lyricmode {
 @end lilypond
 
 Another common situation is transcription of neumatic or
-melismatic chants, i.e. chants with a varying number of notes
+melismatic chants, i.e., chants with a varying number of notes
 to each syllable.  In this case, one would want to set the
 syllable groups clearly apart, usually also the subdivisions of a
 longer melisma.  One way to achieve this is to use a fixed
index 7cca8e59afc36dcaf1793789f5dc48422b0d8b3c..c8f9ebc510c3ee2f5b993291025278bb2a8a37ff 100644 (file)
@@ -522,8 +522,8 @@ Notation Reference:
 
 Contexts are usually terminated at the first musical moment in
 which they have nothing to do.  So @code{Voice} contexts die as
-soon as they contain no events; @code{Staff} contexts die as soon
-as all the @code{Voice} contexts within them contain no events; etc.
+soon as they contain no events, @code{Staff} contexts die as soon
+as all the @code{Voice} contexts within them contain no events, etc.
 This can cause difficulties if earlier contexts which have died
 have to be referenced, for example, when changing staves with
 @code{\change} commands, associating lyrics with a voice with
@@ -1434,7 +1434,7 @@ existing contexts.  To reposition it above the context called
 @qq{main}, it should be defined like this:
 
 @example
-@code{\new Staff \with @{ alignAboveContext = #"main" @} }
+\new Staff \with @{ alignAboveContext = #"main" @}
 @end example
 
 A similar situation arises when positioning a temporary lyrics
@@ -1952,7 +1952,7 @@ the @code{#}@tie{}character.
 
 Contexts properties are usually named in
 @code{studlyCaps}.  They mostly control the translation from
-music to notation, e.g. @code{localAlterations} (for determining
+music to notation, e.g., @code{localAlterations} (for determining
 whether to print accidentals), or @code{measurePosition} (for
 determining when to print a bar line).  Context properties can
 change value over time while interpreting a piece of music;
@@ -2436,7 +2436,7 @@ a context will still show the values of their respective parent's
 context.
 
 The lifetime and value of a context property is dynamic and only
-available when music is being interpreted (i.e. @q{iterated}).  At the
+available when music is being interpreted (i.e., @q{iterated}).  At the
 time of the context's creation, properties are initialized from its
 corresponding definitions (along with any other modifications) of that
 context.  Any subsequent changes are achieved with any
@@ -2467,7 +2467,7 @@ own grob definition.
 
 Grob definitions are accessed with a different set of commands and are
 manipulated using @code{\override} and @code{\revert} and have a name
-starting with a capital letter (e.g. @samp{NoteHead}); whereas normal
+starting with a capital letter (e.g., @samp{NoteHead}); whereas normal
 context properties are manipulated using @code{\set} and @code{\unset}
 and are named starting with a lowercase letter.
 
@@ -2715,7 +2715,7 @@ be desirable to force a particular direction or placement.
 @node Articulation direction indicators
 @unnumberedsubsubsec Articulation direction indicators
 
-By default some directions are always up or always down (e.g.
+By default some directions are always up or always down (e.g.,
 dynamics or fermata), while other things can alternate between
 up or down based on the stem direction (like slurs or accents).
 
@@ -2732,9 +2732,9 @@ but a direction indicator is @strong{always} required before
 @item @code{\tweak} commands
 @item @code{\markup} commands
 @item @code{\tag} commands
-@item string markups, e.g. -"string"
-@item fingering instructions, e.g. @w{@code{-1}}
-@item articulation shortcuts, e.g. @w{@code{-.}}, @w{@code{->}}, @w{@code{--}}
+@item string markups, e.g., -"string"
+@item fingering instructions, e.g., @w{@code{-1}}
+@item articulation shortcuts, e.g., @w{@code{-.}}, @w{@code{->}}, @w{@code{--}}
 @end itemize
 
 Direction indicators affect only the next note:
@@ -2764,7 +2764,7 @@ Alternatively, in many cases predefined commands exist to specify the
 direction.  These are of the form
 
 @example
-@code{\xxxUp}, @code{\xxxDown} or @code{\xxxNeutral}
+\xxxUp, \xxxDown or \xxxNeutral
 @end example
 
 @noindent
@@ -3505,7 +3505,7 @@ to print them and @code{all-invisible} to suppress them.
 
 The @code{break-visibility} property controls the visibility of
 key signatures and changes of clef only at the start of lines,
-i.e. after a break.  It has no effect on the visibility of the
+i.e., after a break.  It has no effect on the visibility of the
 key signature or clef following an explicit key change or an
 explicit clef change within or at the end of a line.  In the
 following example the key signature following the explicit change
@@ -4146,7 +4146,7 @@ The VerticalAlignment and VerticalAxisGroup grobs work together.
 VerticalAxisGroup groups together different grobs like Staff, Lyrics,
 etc.  VerticalAlignment then vertically aligns the different grobs
 grouped together by VerticalAxisGroup.  There is usually only one
-VerticalAlignment per score but every Staff, Lyrics, etc. has its own
+VerticalAlignment per score but every Staff, Lyrics, etc., has its own
 VerticalAxisGroup.
 
 
@@ -4281,7 +4281,7 @@ the collisions to be avoided.
 The syntax of @code{\shape} is
 
 @example
-[-]@code{\shape} @var{displacements} @var{item}
+[-]\shape @var{displacements} @var{item}
 @end example
 
 This will reposition the control-points of @var{item} by the amounts
@@ -4483,7 +4483,7 @@ or a @code{\tweak} of a spanner property.
 The syntax for @code{\alterBroken} is
 
 @example
-[-]@code{\alterBroken} @var{property} @var{values} @var{item}
+[-]\alterBroken @var{property} @var{values} @var{item}
 @end example
 
 The argument @var{values} is a list of values, one for each
@@ -4546,7 +4546,7 @@ layout. Settings chosen for @code{\alterBroken} may be unsuitable
 for a spanner that is no longer broken or is split into more
 segments than before.  Explicit use of @code{\break} can guard
 against this situation.
+
 The @code{\alterBroken} command is ineffective for spanner
 properties accessed before line-breaking such as
 @code{direction}.
@@ -4567,7 +4567,7 @@ Extending LilyPond:
 
 Unpure-pure containers are useful for overriding @emph{Y-axis} spacing
 calculations - specifically @code{Y-offset} and @code{Y-extent} - with a
-Scheme function instead of a literal (i.e. a number or pair).
+Scheme function instead of a literal (i.e., a number or pair).
 
 For certain grobs, the @code{Y-extent} is based on the @code{stencil}
 property, overriding the stencil property of one of these will
@@ -4712,7 +4712,7 @@ must return @code{#t}.
 
 @item @code{@var{@dots{}music@dots{}}}
 @tab normal LilyPond input, using @code{$} (in places where only
-Lilypond constructs are allowed) or @code{#} (to use it as a Scheme
+LilyPond constructs are allowed) or @code{#} (to use it as a Scheme
 value or music function argument or music inside of music lists) to
 reference arguments
 (eg. @samp{#arg1}).
@@ -4743,7 +4743,7 @@ are also allowed.
 Notation Reference:
 @ref{Predefined type predicates}.
 
-Extending Lilypond:
+Extending LilyPond:
 @rextend{Music functions}.
 
 Installed Files:
index 7e2e1e3544d563c7e67d218aa5013506e95fd9f2..acc8f14f9d1488d100d5b5c6e31d10c08c1f8d6a 100644 (file)
@@ -848,11 +848,16 @@ In figure mode, a group of bass figures is delimited by
 @end lilypond
 
 
-Accidentals (including naturals) can be added to figures:
+Accidentals (including naturals) may be used for modifying scale steps.
+These are entered by appending @code{+} (for sharps), @code{-} (for flats)
+or @code{!} (for naturals) after the number.  For double accidentals the
+modifier is applied twice.  For the modification of the third step the
+number is often omitted, which can be achieved by using @code{_} instead
+of a number.
 
 @lilypond[verbatim,quote,ragged-right]
 \figures {
-  <7! 6+ 4-> <5++> <3-->
+  <7! 6+ 4-> <5++> <3--> < _+ > < 7 _!>
 }
 @end lilypond
 
@@ -873,11 +878,11 @@ sixth steps) can be created:
 }
 @end lilypond
 
-Vertical spaces and brackets can be included in figures:
+Brackets can be included in figures:
 
 @lilypond[verbatim,quote,ragged-right]
 \figures {
-  <[12 _!] 8 [6  4]>
+  <[12] 8 [6  4]>
 }
 @end lilypond
 
index 665a847d7f03d62ffaf0e65ef94f11d09a630c18..8a0466903b156b5889514817aed204007b478786 100644 (file)
@@ -142,7 +142,7 @@ addressed in @ref{Grouping staves}.
 @unnumberedsubsubsec Extended polymetric notation
 
 @ignore
-    Extended examples e.g. different instruments
+    Extended examples e.g., different instruments
     or ensembles with independent tempi
 @end ignore
 
index e329810ae56844dd5ab9634742d257a588d45548..b1fbb8b1c938966009c9674d6aaf75ed133dc19c 100644 (file)
@@ -270,7 +270,7 @@ The following shorthand commands are also available:
 Font size changes are achieved by scaling the design size that is
 closest to the desired size.  The standard font size (for
 @w{@code{font-size = 0}}) depends on the standard staff height.
-For a 20pt staff, a 11pt font is selected.
+For a 20pt staff, an 11pt font is selected.
 
 
 @predefined
@@ -350,7 +350,7 @@ Markup texts or strings may be used for finger changes.
 
 @funindex \thumb
 
-A thumb-script can be added (e.g. cello music) to indicate
+A thumb-script can be added (e.g., cello music) to indicate
 that a note should be played with the thumb.
 
 @lilypond[verbatim,quote]
index defe8ad946803368a59ed83492f90fe794009a1b..3c249389c28c65c8040d2382f83e84606ad286f2 100644 (file)
@@ -304,7 +304,7 @@ or @notation{decrescendo} mark, it will end at the centre of the note
 that has the next @code{\<} or @code{\>} assigned to it.  The next
 hairpin will then start at the right edge of the same note
 instead of the usual left edge had it been terminated with @code{\!}
-before.
+before.  A hairpin ending on a downbeat will stop at the preceding bar line.
 
 @lilypond[verbatim,quote]
 \relative {
@@ -446,6 +446,8 @@ items such as text scripts, text spanners, and piano pedal marks.
 
 @snippets
 
+@cindex hairpins at bar lines
+
 @lilypondfile[verbatim,quote,texidoc,doctitle]
 {setting-hairpin-behavior-at-bar-lines.ly}
 
@@ -683,7 +685,8 @@ occurences of outer slurs actually indicate phrasing, and phrasing
 slurs may overlap a regular slur, see @ref{Phrasing slurs}.  When
 multiple regular slurs are needed in a single @code{Voice},
 matching slur starts and ends need to be labelled by preceding
-them with @code{\=} followed by an identifying number or string.
+them with @code{\=} followed by an identifying key (a symbol or
+non-negative integer).
 
 @lilypond[verbatim,quote]
 \fixed c' {
@@ -1224,7 +1227,7 @@ information, see @ref{Ties}.
 @code{\arpeggioArrowDown},
 @code{\arpeggioNormal},
 @code{\arpeggioBracket},
-@code{\arpeggioParenthesis}
+@code{\arpeggioParenthesis},
 @code{\arpeggioParenthesisDashed}.
 @endpredefined
 
index a69f6787355fa32ab9240280284248bd8de587e3..5a7676d64640576125f313f1930d57c55a50bd54 100644 (file)
@@ -194,7 +194,7 @@ calligraphic tablature clef is added automatically.
 @end lilypond
 
 Default tablatures do not contain any symbols for tone duration nor any
-other musical symbols such as e.g. expressive marks.
+other musical symbols such as expressive marks, for example.
 
 @lilypond[quote,ragged-right,verbatim]
 symbols = {
@@ -668,7 +668,7 @@ one for each string, ordered by string number from 1 to N,
 where string 1 is at the top of the tablature staff and
 string N is at the bottom.  This ordinarily results in ordering
 from highest pitch to lowest pitch, but some instruments
-(e.g. ukulele) do not have strings ordered by pitch.
+(e.g., ukulele) do not have strings ordered by pitch.
 
 A string pitch in a string tuning list is a LilyPond pitch
 object.  Pitch objects are created with the Scheme function
@@ -1825,7 +1825,7 @@ music = \relative {
 
 Another playing technique (especially used on electric guitars) is
 called @notation{palm mute}.  The string is hereby partly muted by the
-palm of the striking hand (hence the name).  Lilypond supports
+palm of the striking hand (hence the name).  LilyPond supports
 the notation of palm mute-style notes by changing the note head to a
 triangle shape.
 
@@ -2019,7 +2019,7 @@ LilyPond supports tablature for lute.
 
 To get additional bass strings use @code{additionalBassStrings}, where the
 pitches of those strings are set. They will be printed below lowest line as:
-a, /a, //a, ///a, 4, 5 etc.
+a, /a, //a, ///a, 4, 5, etc.
 
 @code{fret-letter-tablature-format} for @code{tablatureFormat} should be used,
 probably @code{fretLabels} for further customizing.
index ce33708eac5f57d1fceff81dee2a776e67349bd6..f131cd6012e59806cd0e31205b903492f48741d4 100644 (file)
@@ -228,7 +228,7 @@ input file, LilyPond will implicitly treat the whole
 file as a single \book block, see
 @ref{File structure}.
 
-When producing multiple files from a single source file, Lilypond
+When producing multiple files from a single source file, LilyPond
 ensures that none of the output files from any @code{\book} block
 overwrites the output file produced by a preceding @code{\book} from
 the same input file.
@@ -273,10 +273,10 @@ will produce
 @funindex \bookOutputSuffix
 @funindex \bookOutputName
 
-Lilypond provides facilities to allow you to control what file names
+LilyPond provides facilities to allow you to control what file names
 are used by the various back-ends when producing output files.
 
-In the previous section, we saw how Lilypond prevents name-clashes when
+In the previous section, we saw how LilyPond prevents name-clashes when
 producing several outputs from a single source file.  You also have the
 ability to specify your own suffixes for each @code{\book} block, so
 for example you can produce files called
@@ -365,9 +365,9 @@ A direct scheme expression, such as
 @code{#(ly:set-option 'point-and-click #f)}.
 
 @item
-A @code{\header} block.  This sets the global (i.e. the top of
+A @code{\header} block.  This sets the global (i.e., the top of
 file) header block.  This is the block containing the default
-settings of titling fields like composer, title, etc. for all
+settings of titling fields like composer, title, etc., for all
 books within the file (see @ref{Titles explained}).
 
 @item
@@ -496,11 +496,11 @@ circumstances to avoid errors:
 
 @item Around every opening and closing curly bracket.
 
-@item After every command or variable, i.e. every item that
+@item After every command or variable, i.e., every item that
 begins with a @code{\} sign.
 
 @item After every item that is to be interpreted as a Scheme
-expression, i.e. every item that begins with a @code{#}@tie{}sign.
+expression, i.e., every item that begins with a @code{#}@tie{}sign.
 
 @item To separate all elements of a Scheme expression.
 
@@ -531,7 +531,7 @@ some pieces include a lot more information.
 @menu
 * Creating titles headers and footers::
 * Custom titles headers and footers::
-* Creating PDF metadata::
+* Creating output file metadata::
 * Creating footnotes::
 * Reference to page numbers::
 * Table of contents::
@@ -1119,16 +1119,16 @@ markup conditionally to header and footer text defined within the
 @code{\paper} block, using the following syntax:
 
 @example
-@code{variable} = @code{\markup} @{
+variable = \markup @{
   @dots{}
-  @code{\on-the-fly}  \@var{procedure}  @var{markup}
+  \on-the-fly  \@var{procedure}  @var{markup}
   @dots{}
 @}
 @end example
 
 The @var{procedure} is called each time the @code{\markup} command
 in which it appears is evaluated.  The @var{procedure} should test
-for a particular condition and interpret (i.e. print) the
+for a particular condition and interpret (i.e., print) the
 @var{markup} argument if and only if the condition is true.
 
 A number of ready-made procedures for testing various conditions are
@@ -1185,8 +1185,8 @@ Several @code{\on-the-fly} conditions can be combined with an
 @q{and} operation, for example,
 
 @example
-  @code{\on-the-fly \first-page}
-  @code{\on-the-fly \last-page}
+  \on-the-fly \first-page
+  \on-the-fly \last-page
   @code{@{ \markup @dots{} \fromproperty #'header: @dots{} @}}
 @end example
 
@@ -1200,21 +1200,30 @@ Notation Reference:
 Installed Files:
 @file{../ly/titling-init.ly}.
 
-@node Creating PDF metadata
-@subsection Creating PDF metadata
+@node Creating output file metadata
+@subsection Creating output file metadata
 
 @cindex PDF metadata
+@cindex MIDI metadata
 
 In addition to being shown in the printed output, @code{\header} variables
-are also used to set PDF metadata (the information displayed by PDF readers
-as the @code{properties} of the PDF file).  For example, setting the
-@code{title} property of the @code{header} block @q{Symphony I} will also give
-this title to the PDF document.
-
-@example
-  @code{\header@{}
-    @code{title = "Symphony I"}
-  @code{@}}
+are also used to set metadata for output files.  For example, with PDF
+files, this metadata could be displayed by PDF readers as the
+@code{properties} of the PDF file.  For each type of output file, only the
+@code{\header} definitions of blocks that define separate files of that
+type, and blocks higher in the block hierarchy, will be consulted.
+Therefore, for PDF files, only the @code{\book} level and the top level
+@code{\header} definitions affect the document-wide PDF metadata, whereas
+for MIDI files, all headers above or at the @code{\score} level are used.
+
+For example, setting the @code{title} property of the @code{header} block
+to @q{Symphony I} will also give this title to the PDF document, and use
+it as the sequence name of the MIDI file.
+
+@example
+\header@{
+  title = "Symphony I"
+@}
 @end example
 
 If you want to set the title of the printed output to one value, but have the
@@ -1222,10 +1231,10 @@ title property of the PDF to have a different value, you can use
 @code{pdftitle}, as below.
 
 @example
-  @code{\header@{}
-    @code{title = "Symphony I"}
-    @code{pdftitle = "Symphony I by Beethoven"}
-  @code{@}}
+\header@{
+  title = "Symphony I"
+  pdftitle = "Symphony I by Beethoven"
+@}
 @end example
 
 The variables @code{title}, @code{subject}, @code{keywords},
@@ -1239,6 +1248,10 @@ both set to the current date and time.  @code{ModDate} can be overridden by
 setting the header variable @code{moddate} (or @code{pdfmoddate}) to a
 valid PDF date string.
 
+The @code{title} variable sets also the sequence name for MIDI.  The
+@code{midititle} variable can be used to set the sequence name
+independently of the value used for typeset output.
+
 @node Creating footnotes
 @subsection Creating footnotes
 
@@ -1325,7 +1338,7 @@ left/bottom edge and zero implies the mark is centered on the edge.
 
 @item Context
 is the context in which the grob being footnoted is created.  It
-may be omitted if the grob is in a bottom context, e.g. a
+may be omitted if the grob is in a bottom context, e.g., a
 @code{Voice} context.
 
 @item GrobName
@@ -2206,7 +2219,7 @@ followed by a music expression.  If @emph{and only if} the symbols
 are valid LilyPond identifiers (alphabetic characters only, no
 numbers, underscores, or dashes) which cannot be confused with notes,
 the @code{#'} may be omitted and, as a shorthand, a list of symbols
-can use the dot separator: i.e. @code{\tag #'(violinI violinII)} can
+can use the dot separator: i.e., @code{\tag #'(violinI violinII)} can
 be written @code{\tag violinI.violinII}.  The same applies to
 @code{\keepWithTag} and @code{\removeWithTag}.
 
@@ -2251,7 +2264,7 @@ music = \relative {
 }
 @end lilypond
 
-Tagged filtering can be applied to articulations, texts, etc. by
+Tagged filtering can be applied to articulations, texts, etc., by
 prepending
 
 @example
@@ -2728,7 +2741,7 @@ in your source file.  This will render only the last 5 measures
 (assuming 4/4 time signature) of every @code{\score} in the input
 file.  For longer pieces, rendering only a small part is often an order
 of magnitude quicker than rendering it completely.  When working on the
-beginning of a score you have already typeset (e.g. to add a new part),
+beginning of a score you have already typeset (e.g., to add a new part),
 the @code{showFirstLength} property may be useful as well.
 
 Skipping parts of a score can be controlled in a more fine-grained
@@ -2882,7 +2895,7 @@ following (without taking dots into account).  For example;
 @noindent
 The c will take the value of a crotchet.
 
-@item Ornaments (i.e. mordents, trills and turns et al.)
+@item Ornaments (i.e., mordents, trills and turns et al.)
 @item Rallentando, accelerando, ritardando and a tempo
 @item Slurs, including phrasing slurs
 @item Tenuto
@@ -2907,8 +2920,8 @@ and portato
 @item Glissandi
 @item Falls and doits
 @item Microtonal chords
-@item Rhythms entered as annotations, e.g. swing
-@item Tempo changes without @code{\tempo} (e.g. entered as annotations)
+@item Rhythms entered as annotations, e.g., swing
+@item Tempo changes without @code{\tempo} (e.g., entered as annotations)
 @item Tremolos that @emph{are} entered with a @q{@code{:}[@var{number}]}
 value
 @end itemize
@@ -2930,8 +2943,8 @@ To create a MIDI output file from a LilyPond input file, insert a
 @}
 @end example
 
-@warning{ A @code{@bs{}score} block that, as well as the music, contains
-only a @code{@bs{}midi} block (i.e. @emph{without} the @code{@bs{}layout}
+@warning{A @code{@bs{}score} block that, as well as the music, contains
+only a @code{@bs{}midi} block (i.e., @emph{without} the @code{@bs{}layout}
 block), will only produce MIDI output files.  No notation will be
 printed.}
 
@@ -2952,7 +2965,8 @@ either the @code{\book}, @code{\bookpart} or @code{\score} blocks.  See
 
 @seealso
 Notation Reference:
-@ref{File structure}.
+@ref{File structure},
+@ref{Creating output file metadata}.
 
 Installed Files:
 @file{scm/midi.scm}.
@@ -3615,7 +3629,7 @@ lilypond file.ly >display.txt
 @end example
 
 @funindex \void
-Note that Lilypond does not just display the music expression, but
+Note that LilyPond does not just display the music expression, but
 also interprets it (since @code{\displayLilyMusic} returns it in
 addition to displaying it).  Just insert @code{\displayLilyMusic} into
 the existing music in order to get information about it.
index 3d8bf79f43efacfbd0afb4d72cd8345ee2debaed..388c8bc388bb9cc7cf94d081bd1a46dce8c90e9e 100644 (file)
@@ -859,12 +859,12 @@ darkcyan    darkmagenta    darkyellow
 X color names come several variants:
 
 Any name that is spelled as a single word with capitalization
-(e.g. @q{LightSlateBlue}) can also be spelled as space separated
-words without capitalization (e.g. @q{light slate blue}).
+(e.g., @q{LightSlateBlue}) can also be spelled as space separated
+words without capitalization (e.g., @q{light slate blue}).
 
-The word @q{grey} can always be spelled @q{gray} (e.g. @q{DarkSlateGray}).
+The word @q{grey} can always be spelled @q{gray} (e.g., @q{DarkSlateGray}).
 
-Some names can take a numerical suffix (e.g. @q{LightSalmon4}).
+Some names can take a numerical suffix (e.g., @q{LightSalmon4}).
 
 
 @subsubheading Color Names without a numerical suffix:
@@ -2366,7 +2366,7 @@ An association list or @strong{alist} for short is a Scheme pair
 which associates a value with a key: @w{@code{(key . value)}}.  For
 example, in @file{scm/lily.scm}, the alist
 @w{@qq{type-p-name-alist}} associates certain type predicates
-(e.g.@tie{}@code{ly:music?}) with names (e.g.@tie{}@qq{music}) so
+(e.g., @code{ly:music?}) with names (e.g., @qq{music}) so
 that type-check failures can be reported with a console message that
 includes the name of the expected type predicate.
 
@@ -2392,7 +2392,7 @@ performed.
 In Scheme, a @strong{closure} is created when a function, usually
 a lambda expression, is passed as a variable.  The closure contains
 the function's code plus references to the lexical bindings of the
-function's free variables (i.e. those variables used in the
+function's free variables (i.e., those variables used in the
 expression but defined outside it).  When this function is applied
 to different arguments later, the free variable bindings that were
 captured in the closure are used to obtain the values of the free
index be6bc04c35662e688bdd0afbdc95e337fa274d1e..b17dd888ee6d79047090f0c4a2389b3406279ade 100644 (file)
@@ -168,7 +168,7 @@ Snippets:
 @node Pitched percussion
 @unnumberedsubsubsec Pitched percussion
 
-Certain pitched percussion instruments (e.g. xylophone,
+Certain pitched percussion instruments (e.g., xylophone,
 vibraphone, and timpani) are written using normal staves.
 This is covered in other sections of the manual.
 
index 3aa7738e2bbfcb71812369cc2edccb40207dbbb0..bfed32447e5973ffef0423218042c03ef0273269 100644 (file)
@@ -456,7 +456,7 @@ Internals Reference:
 
 @knownissues
 There are no generally accepted standards for denoting
-quarter-tone accidentals, so LilyPond's symbol does not conform to
+quarter-tone accidentals, so LilyPond's symbols do not conform to
 any standard.
 
 
@@ -518,7 +518,7 @@ In addition to note names, accidental suffixes may
 also vary depending on the language:
 
 @quotation
-@multitable {@code{nederlands}} {-@code{s}/-@code{-sharp}} {-@code{ess}/-@code{es}} {-@code{ss}/-@code{x}/-@code{-sharpsharp}} {-@code{essess}/-@code{eses}}
+@multitable {@code{nederlands}} {-@code{s}/-@code{-sharp}} {-@code{f}/-@code{-flat}} {-@code{ss}/-@code{x}/-@code{-sharpsharp}} {-@code{ff}/-@code{-flatflat}}
 @headitem Language
   @tab sharp @tab flat @tab double sharp @tab double flat
 @item @code{nederlands}
@@ -841,7 +841,7 @@ relative mode within transposed music, an additional @code{\relative}
 must be placed inside @code{\transpose}.
 
 Triple accidentals will not be printed if using @code{\transpose}. An
-@q{enharmonically equivalent} pitch will be used instead (e.g. d-flat
+@q{enharmonically equivalent} pitch will be used instead (e.g., d-flat
 rather than e-triple-flat).
 
 
@@ -903,9 +903,14 @@ music = \relative { c'8. ees16( fis8. a16 b8.) gis16 f8. d16 }
 @end lilypond
 
 @knownissues
-Manual ties inside @code{\retrograde} will be broken and
-generate warnings.  Some ties can be generated automatically
-by enabling @ref{Automatic note splitting}.
+@code{\retrograde} is a rather simple tool.  Since many events are
+@q{mirrored} rather than exchanged, tweaks and directional
+modifiers for opening spanners need to be added at the matching
+closing spanners: @code{^(} needs to be ended by @code{^)}, every
+@code{\<} or @code{\cresc} needs to be ended by @code{\!} or
+@code{\endcr}, every @code{\>} or @code{\decr} needs to be ended
+by @code{\enddecr}.  Property-changing commands/overrides with a
+lasting effect will likely cause surprises.
 
 @seealso
 Notation Reference:
@@ -1214,6 +1219,13 @@ will be ignored.  The command
   c'1
 @end lilypond
 
+@noindent
+To be more precise, it is not the @code{\clef} command itself that
+prints a clef.  Instead, it sets or changes a property of the
+@code{Clef_engraver}, which then decides by its own whether to
+display a clef or not in the current staff.  The @code{forceClef}
+property overrides this decision locally to re-print a clef once.
+
 When there is a manual clef change, the glyph of the changed clef
 will be smaller than normal.  This behaviour can be overridden.
 
index 05d71edc49b49d4ea995d033dc0c190bc7f286ab..2df6cbaee7ec22e39e9072fdeba2f2b0b09656db 100644 (file)
@@ -186,7 +186,7 @@ Internals Reference:
 @c Deliberately duplicated in Durations and Rests.  -gp
 There is no fundamental limit to rest durations (both in terms of
 longest and shortest), but the number of glyphs is limited:
-rests from 128th to maxima (8 x whole) may be printed.
+rests from 128th to maxima (8× whole) may be printed.
 
 
 @node Tuplets
@@ -713,7 +713,7 @@ Internals Reference:
 @c Deliberately duplicated in Durations and Rests.  -gp
 There is no fundamental limit to rest durations (both in terms of
 longest and shortest), but the number of glyphs is limited: there
-are rests from 128th to maxima (8 x whole).
+are rests from 128th to maxima (8× whole).
 
 
 @node Invisible rests
@@ -981,7 +981,7 @@ Internals Reference:
 @cindex multi-measure rests and fingerings
 
 @knownissues
-Fingerings over multi-measure rests (e.g. @code{R1*10-4}) may result
+Fingerings over multi-measure rests (e.g., @code{R1*10-4}) may result
 in the fingering numeral colliding with the bar counter
 numeral.
 
@@ -1489,7 +1489,7 @@ Internal Reference:
 @funindex \cadenzaOff
 
 In metered music bar lines are inserted and bar numbers are calculated
-automatically. In unmetered music (i.e. cadenzas), this is not
+automatically. In unmetered music (i.e., cadenzas), this is not
 desirable and can be @q{switched off} using the command
 @code{\cadenzaOn}, then @q{switched back on} at the appropriate place
 using @code{\cadenzaOff}.
@@ -1715,7 +1715,7 @@ These are created using the @code{\compoundMeter} function.  The syntax
 for this is:
 
 @example
-\compoundMeter #'@code{(list of lists)}
+\compoundMeter #'(list of lists)
 @end example
 
 The simplest construction is a single list, where the @emph{last} number
@@ -1864,7 +1864,7 @@ For consistency with previous behavior, notes and rests with
 duration longer than a measure, such as @code{c1*2}, are split into
 notes without any scale factor, @code{@{ c1 c1 @}}.  The property
 @code{completionFactor} controls this behavior, and setting it to
-@code{#f} cause split notes and rest to have the scale factor
+@code{#f} cause split notes and rests to have the scale factor
 of the input durations.
 
 
@@ -2666,7 +2666,7 @@ all notes end before the end of a measure.
 
 @warning{An incorrect duration can cause line breaks to be
 inhibited, leading to a line of highly compressed music or
-music which flows off the page.}
+music that flows off the page.}
 
 @cindex line breaks
 @cindex bar lines, invisible
@@ -2758,7 +2758,7 @@ However, as such ticks are typically used in Gregorian chant, it is
 preferable to use @code{\divisioMinima} there instead, described in
 the section @ref{Divisiones} in Gregorian chant.
 
-Lilypond supports kievan notation and provides a special kievan
+LilyPond supports kievan notation and provides a special kievan
 bar line:
 @lilypond[quote,fragment,verbatim]
 f'1 \bar "k"
@@ -2941,7 +2941,7 @@ for defining span bars correctly aligned to the main bar lines:
 @end lilypond
 
 If additional elements are needed, LilyPond provides a simple
-way to define them.  For more informations on modifying or adding
+way to define them.  For more information on modifying or adding
 bar lines, see file @file{scm/bar-line.scm}.
 
 In scores with many staves, a @code{\bar} command in one staff is
@@ -3432,11 +3432,23 @@ notes following the main note.
 \relative { c''1 \afterGrace d1 { c16[ d] } c1 }
 @end lilypond
 
-This will put the grace notes after a space lasting 3/4 of the
-length of the main note.  The default fraction 3/4 can be changed by
-setting @code{afterGraceFraction}.  The following example shows
-the results from setting the space at the default,  at 15/16, and
-finally at 1/2 of the main note.
+This will place the grace notes @emph{after} the start of the main
+note.  The point of time where the grace notes are placed is a
+given fraction of the main note's duration.  The default setting
+of
+
+@example
+afterGraceFraction = 3/4
+@end example
+
+@noindent
+may be redefined at top level.  Individual @code{\afterGrace}
+commands may have the fraction specified right after the command
+itself instead.
+
+The following example shows the results from setting with the
+default space, setting it at @code{15/16}, and finally at
+@code{1/2} of the main note.
 
 @lilypond[quote,verbatim]
 <<
@@ -3444,19 +3456,17 @@ finally at 1/2 of the main note.
     c''1 \afterGrace d1 { c16[ d] } c1
   }
   \new Staff \relative {
-    #(define afterGraceFraction (cons 15 16))
-    c''1 \afterGrace d1 { c16[ d] } c1
+    c''1 \afterGrace 15/16 d1 { c16[ d] } c1
   }
   \new Staff \relative {
-    #(define afterGraceFraction (cons 1 2))
-    c''1 \afterGrace d1 { c16[ d] } c1
+    c''1 \afterGrace 1/2 d1 { c16[ d] } c1
   }
 >>
 @end lilypond
 
-The space between the main note and the grace note may also be
-specified using spacers.  The following example places the grace
-note after a space lasting 7/8 of the main note.
+The effect of @code{\afterGrace} can also be achieved using
+spacers.  The following example places the grace note after a
+space lasting 7/8 of the main note.
 
 @lilypond[quote,verbatim]
 \new Voice \relative {
@@ -3717,10 +3727,10 @@ The next bar line then falls at 9/8 rather than 5/4.
 @end lilypond
 
 @noindent
-As the example illustrates, @code{ly:make-moment n m} constructs a
+As the example illustrates, @code{ly:make-moment n/m} constructs a
 duration of n/m of a whole note.  For example,
-@code{ly:make-moment 1 8} is an eighth note duration and
-@code{ly:make-moment 7 16} is the duration of seven sixteenths
+@code{ly:make-moment 1/8} is an eighth note duration and
+@code{ly:make-moment 7/16} is the duration of seven sixteenths
 notes.
 
 @seealso
index a29dd9c4ae25a89d80dfceb1fec95ec6c0c1c5be..d9c7fb42d44056798d5ab8ca970a8809d2e8be90 100644 (file)
@@ -180,7 +180,7 @@ chord.  The chord repetition symbol is @code{q}:
 @end lilypond
 
 As with regular chords, the chord repetition symbol can be used with
-durations, articulations, markups, slurs, beams, etc. as only the
+durations, articulations, markups, slurs, beams, etc., as only the
 pitches of the previous chord are duplicated.
 
 @lilypond[verbatim,quote]
@@ -559,8 +559,8 @@ upstems, and the even-numbered voices are given downstems:
 >>
 @end lilypond
 
-@warning{Lyrics, spanners (such as slurs, ties, hairpins etc.) cannot be
-created @q{across} voices.}
+@warning{Lyrics and spanners (such as slurs, ties, hairpins, etc.) cannot
+be created @q{across} voices.}
 
 @subsubsubheading Identical rhythms
 
@@ -1118,12 +1118,12 @@ started when combining notes that have just started in the other
 @code{Voice}.  This can lead to a number of unexpected issues including
 @qq{Solo} or @qq{Unison} marks being printed incorrectly.
 
-@code{\partcombine} keeps all spanners (slurs, ties, hairpins etc.) in
+@code{\partcombine} keeps all spanners (slurs, ties, hairpins, etc.) in
 the same @code{Voice} so that if any such spanners start or end in a
 different @code{Voice}, they may not be printed properly or at all.
 
 If the @code{\partcombine} function cannot combine both music
-expressions (i.e. when both voices have different durations), it will
+expressions (i.e., when both voices have different durations), it will
 give the voices, internally, its own custom names: @code{one} and
 @code{two} respectively.  This means if there is any @qq{switch} to a
 differently named @code{Voice} context, the events in that differently
index bd6d4d4b78645d164f13a49c37180eb1210a12c0..23ed5c0f308f7d26913e2c2c1ae407900124715a 100644 (file)
@@ -570,20 +570,20 @@ the distance between two (title or top-level) markups.
 @funindex last-bottom-spacing
 
 the distance from the last system or top-level markup on a page to
-the bottom of the printable area (i.e. the top of the bottom
+the bottom of the printable area (i.e., the top of the bottom
 margin).
 
 @item top-system-spacing
 @funindex top-system-spacing
 
-the distance from the top of the printable area (i.e. the bottom
+the distance from the top of the printable area (i.e., the bottom
 of the top margin) to the first system on a page, when there is no
 (title or top-level) markup between the two.
 
 @item top-markup-spacing
 @funindex top-markup-spacing
 
-the distance from the top of the printable area (i.e. the bottom
+the distance from the top of the printable area (i.e., the bottom
 of the top margin) to the first (title or top-level) markup on a
 page, when there is no system between the two.
 @end table
@@ -927,7 +927,7 @@ scores (if there are two or more scores), or by ending a score on an
 even-numbered page.  The values of the following three variables may
 be increased to make these actions less likely.
 
-The values are penalties, i.e. the higher the value the less likely
+The values are penalties, i.e., the higher the value the less likely
 will be the associated action relative to other choices.
 
 @table @code
@@ -1431,7 +1431,7 @@ issue:
 @end lilypond
 
 A @code{\break} command that occurrs at a bar line will also ignored if
-the previous measure ends in the middle of a note (e.g. when a tuplet
+the previous measure ends in the middle of a note (e.g., when a tuplet
 begins in one measure and ends in another).  In this case remove the
 @code{Forbid_line_break_engraver} from the @code{Voice} context and,
 use a simultaneous music construction inserting the @code{\break} at the
@@ -1943,7 +1943,7 @@ non-staff line if @code{staff-affinity} is @code{UP}.
 
 Each distance is measured between the @emph{reference points} of
 the two items.  The reference point for a staff is the vertical
-center of its @code{StaffSymbol} (i.e. the middle line if
+center of its @code{StaffSymbol} (i.e., the middle line if
 @code{line-count} is odd; the middle space if @code{line-count} is
 even).  The reference points for individual non-staff lines are
 given in the following table:
@@ -2107,7 +2107,7 @@ non-staff line.  Choices are @code{UP}, @code{DOWN}, and
 placed equidistant between the two nearest staves on either side,
 unless collisions or other spacing constraints prevent this.
 Adjacent non-staff lines should have non-increasing
-@code{staff-affinity} from top to bottom, e.g. a non-staff line
+@code{staff-affinity} from top to bottom, e.g., a non-staff line
 set to @code{UP} should not immediately follow one that is set to
 @code{DOWN}.  Non-staff lines at the top of a system should use
 @code{DOWN}; those at the bottom should use @code{UP}.  Setting
@@ -2333,7 +2333,7 @@ Internals Reference:
 
 @emph{Non-staff lines} (such as @code{Lyrics}, @code{ChordNames},
 etc.) are contexts whose layout objects are engraved like staves
-(i.e. in horizontal lines within systems).  Specifically,
+(i.e., in horizontal lines within systems).  Specifically,
 non-staff lines are non-staff contexts that contain the
 @rinternals{Axis_group_engraver}.
 
index ce859e2bb5dd08757915e391893f346be8bd5c61..a1144346644864b8298f30a4fe6e9df2423c9078 100644 (file)
@@ -1326,7 +1326,7 @@ It is possible to adjust which aspects of the music are quoted with
 property.  Its default value is @code{'(note-event rest-event
 tie-event beam-event tuplet-span-event)}, which means that only
 notes, rests, ties, beams and tuplets are quoted, but not
-articulations, dynamic marks, markup etc.
+articulations, dynamic marks, markup, etc.
 
 @warning{When a @code{Voice} starts with @code{\cueDuring}, as in the
 following example, the @code{Voice} context must be explicitly declared,
index 22471b86b312c810b548bfe507144a6fccbb7934..4d1f44a4e4a1cf1fb4df866531f0dedb73815c8c 100644 (file)
@@ -121,7 +121,7 @@ Internals Reference:
 
 @knownissues
 Checking to make sure that text scripts and lyrics are within the
-margins requires additonal calculations. In cases where slightly faster
+margins requires additional calculations. In cases where slightly faster
 performance is desired, use
 
 @example
@@ -505,7 +505,7 @@ Installed Files:
 @file{scm/markup.scm}.
 
 @knownissues
-Syntax errors for markup mode can be confusing.
+Syntax error messages for markup mode can be confusing.
 
 
 @node Selecting font and font size
@@ -543,9 +543,9 @@ Basic font switching is supported in markup mode:
 @funindex \magnify
 
 The font size can be altered, relative to the global staff size, in a
-number of different ways
+number of different ways.
 
-It can be set to predefined size,
+It can be set to predefined size.
 
 @lilypond[quote,verbatim]
 \relative b' {
@@ -555,7 +555,7 @@ It can be set to predefined size,
 }
 @end lilypond
 
-It can be set relative to its previous value,
+It can be set relative to its previous value.
 
 @lilypond[quote,verbatim]
 \relative b' {
@@ -566,7 +566,7 @@ It can be set relative to its previous value,
 @end lilypond
 
 It can be increased or decreased relative to the value set by the
-global staff size,
+global staff size.
 
 @lilypond[quote,verbatim]
 \relative b' {
@@ -577,7 +577,7 @@ global staff size,
 @end lilypond
 
 It can also be set to a fixed point-size, regardless of the global staff
-size,
+size.
 
 @lilypond[quote,verbatim]
 \relative b' {
index becdc6f3e137a1469fa78ed6a4d3965ae8b5a09e..f3eae557659034137a17fca8574dcec93dda7bd3 100644 (file)
@@ -198,10 +198,6 @@ dots are required.
 }
 @end lilypond
 
-@warning{@code{@bs{}harmonic} @strong{must} be placed inside a
-chord construct even if there is only a single note.  Normally
-@code{@bs{}harmonicsOn} would be used in this situation.}
-
 @seealso
 Music Glossary:
 @rglos{harmonics}.
index b06de6f40b42b17d60b67326229f5e8f093a101d..118a58e4822b7ca9959377fbfc1550f4694e438f 100644 (file)
@@ -63,7 +63,7 @@ introduction to this notation is to be found in
 @item
 Vocal music is likely to require the use of @code{markup} mode,
 either for lyrics or for other text elements (characters' names,
-etc.)  This syntax is described in @ref{Text markup introduction}.
+etc.).  This syntax is described in @ref{Text markup introduction}.
 
 @item
 @notation{Ambitus} may be added at the beginning of vocal staves,
@@ -791,11 +791,11 @@ should be included in the melisma:
 
 
 @predefined
-
 @code{\autoBeamOff},
 @code{\autoBeamOn},
 @code{\melisma},
 @code{\melismaEnd}.
+@endpredefined
 
 @seealso
 Musical Glossary:
@@ -1902,7 +1902,7 @@ are to be ignored.
 @cindex grace notes and lyrics
 @cindex lyrics on grace notes
 
-By default, grace notes (e.g. via @code{\grace}) do not get assigned
+By default, grace notes (e.g., via @code{\grace}) do not get assigned
 syllables when using @code{\lyricsto}, but this behavior can be
 changed:
 
@@ -2300,6 +2300,7 @@ When a vocal part temporarily splits, you should use
 @code{\oneVoice},
 @code{\voiceOne},
 @code{\voiceTwo}.
+@endpredefined
 
 @seealso
 Learning Manual:
@@ -2392,7 +2393,10 @@ above their respective staves, as shown here:
 @end lilypond
 
 @predefined
-@code{\dynamicUp}, @code{\dynamicDown}, @code{\dynamicNeutral}.
+@code{\dynamicUp},
+@code{\dynamicDown},
+@code{\dynamicNeutral}.
+@endpredefined
 
 @seealso
 Notation Reference:
index 3b80f6da0d02eaf098711759ecd7ace96cefc38d..ff8e942dc997da2e87b9a54805cb5d84ead24b76 100644 (file)
@@ -12,7 +12,7 @@ msgstr ""
 "Project-Id-Version: ca\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2012-04-25 19:39+0200\n"
-"PO-Revision-Date: 2014-06-09 09:09+0200\n"
+"PO-Revision-Date: 2016-07-04 11:28+0200\n"
 "Last-Translator: Walter Garcia-Fontes <walter.garcia@upf.edu>\n"
 "Language-Team: Catalan <ca@dodds.net>\n"
 "Language: ca\n"
@@ -42,7 +42,7 @@ msgstr "Altres idiomes: %s."
 #: postprocess_html.py:70
 #, python-format
 msgid "About <a href=\"%s\">automatic language selection</a>."
-msgstr "Quant a <a href=\"%s\">selecció automàtica de l'idioma</a>."
+msgstr "Quant a la <a href=\"%s\">selecció automàtica de la llengua</a>."
 
 #: postprocess_html.py:327
 msgid "stable-branch"
@@ -532,7 +532,7 @@ msgstr "Interfícies per a programadors"
 
 #. @node in Documentation/extending/programming-interface.itely
 #. @section in Documentation/extending/programming-interface.itely
-msgid "Lilypond code blocks"
+msgid "LilyPond code blocks"
 msgstr "Blocs de codi del LilyPond"
 
 #. @node in Documentation/extending/programming-interface.itely
@@ -6480,7 +6480,7 @@ msgstr "Inserció de la sortida del LilyPond dins d'altres programes"
 #. @node in Documentation/usage/external.itely
 #. @unnumberedsubsec in Documentation/usage/external.itely
 msgid "Inserting LilyPond output into other programs"
-msgstr "Inserció de la sortida del Lilypond dins d'altres programes"
+msgstr "Inserció de la sortida del LilyPond dins d'altres programes"
 
 #. @node in Documentation/usage/external.itely
 msgid "Independent includes"
@@ -11343,7 +11343,7 @@ msgstr "estigui al domini públic i pugui formar part, usar-se i presentar-se di
 
 #. Documentation/snippets/unfretted-headword.ly:37 (comment)
 msgid "the LilyPond Documention Project."
-msgstr "Projecte de Documentació del Lilypond."
+msgstr "Projecte de Documentació del LilyPond."
 
 #. Documentation/snippets/unfretted-headword.ly:39 (comment)
 msgid "Statement Date: Octber the 9th, 2008"
index 466ac3afaa9eb5ab401bd0dc3c8dbd5f96dd2cdd..50d0b4c65dd4e1a66f1b4a83b824a912b8301200 100644 (file)
@@ -528,7 +528,7 @@ msgstr "Rozhraní pro programátory"
 #. @node in Documentation/extending/programming-interface.itely
 #. @section in Documentation/extending/programming-interface.itely
 #, fuzzy
-msgid "Lilypond code blocks"
+msgid "LilyPond code blocks"
 msgstr "Složené proměnné v LilyPondu"
 
 #. @node in Documentation/extending/programming-interface.itely
index 9d2033aa3a55056c6fccd8af697138e1fb2db470..ae9c105c7e31e12e3e9e025f0fedbf77dbf2fa26 100644 (file)
@@ -523,7 +523,7 @@ msgstr "Schnittstellen für Programmierer"
 #. @node in Documentation/extending/programming-interface.itely
 #. @section in Documentation/extending/programming-interface.itely
 #, fuzzy
-msgid "Lilypond code blocks"
+msgid "LilyPond code blocks"
 msgstr "Zusammengesetzte LilyPond-Variablen"
 
 #. @node in Documentation/extending/programming-interface.itely
index ccde9e84a32c32a084b059cf2a7b83f0048f58fe..1bd8ddb3f798e53228a77278c34479bff12bf586 100644 (file)
@@ -536,7 +536,7 @@ msgstr "Interfaces para programadores"
 
 #. @node in Documentation/extending/programming-interface.itely
 #. @section in Documentation/extending/programming-interface.itely
-msgid "Lilypond code blocks"
+msgid "LilyPond code blocks"
 msgstr "Bloques de código de LilyPond"
 
 #. @node in Documentation/extending/programming-interface.itely
index 5553c33154420d4d7dd255c38232ace18c5b0d7a..dcc94ff474f57669a584b55c82f480a5fff92741 100644 (file)
@@ -514,7 +514,7 @@ msgstr "Interfaces pour programmeurs"
 
 #. @node in Documentation/extending/programming-interface.itely
 #. @section in Documentation/extending/programming-interface.itely
-msgid "Lilypond code blocks"
+msgid "LilyPond code blocks"
 msgstr "Blocs de code lilyPond"
 
 #. @node in Documentation/extending/programming-interface.itely
index abfdfb70784a76f824ed0ff20eaaf5b10a8f826a..ddddf9245447dd3810ea4a842f83c667aa64450d 100644 (file)
@@ -537,7 +537,7 @@ msgstr ""
 #. @node in Documentation/extending/programming-interface.itely
 #. @section in Documentation/extending/programming-interface.itely
 #, fuzzy
-msgid "Lilypond code blocks"
+msgid "LilyPond code blocks"
 msgstr "lilypond-book sablonok"
 
 #. @node in Documentation/extending/programming-interface.itely
index 710e4b35a181c5af72c21d567f11250fe8735af1..1fbf06298557d2650f4742074cf15f1d705a5834 100644 (file)
@@ -519,7 +519,7 @@ msgstr ""
 
 #. @node in Documentation/extending/programming-interface.itely
 #. @section in Documentation/extending/programming-interface.itely
-msgid "Lilypond code blocks"
+msgid "LilyPond code blocks"
 msgstr ""
 
 #. @node in Documentation/extending/programming-interface.itely
index 76ffe4467f0753899b5056f5696b1076cabc7ca6..588306bcdbdd4f0db9e273b69d3fb42d0894c436 100644 (file)
@@ -558,7 +558,7 @@ msgstr ""
 #. @node in Documentation/extending/programming-interface.itely
 #. @section in Documentation/extending/programming-interface.itely
 #, fuzzy
-msgid "Lilypond code blocks"
+msgid "LilyPond code blocks"
 msgstr "環境変数"
 
 #. @node in Documentation/extending/programming-interface.itely
index 0ce4b27c82dfe2a8537b8aac39e4d9bd8be5223a..ae8d4bb1a870dac5350e0c39385ae2c46656804b 100644 (file)
@@ -518,7 +518,7 @@ msgstr ""
 
 #. @node in Documentation/extending/programming-interface.itely
 #. @section in Documentation/extending/programming-interface.itely
-msgid "Lilypond code blocks"
+msgid "LilyPond code blocks"
 msgstr ""
 
 #. @node in Documentation/extending/programming-interface.itely
index aaa66c2b1c2a80fc0dc47476751c39ea7a97426d..1da3bcfe81cdbb55a7c986d21b62eb7af4361a6e 100644 (file)
@@ -515,7 +515,7 @@ msgstr "面向程序员的界面"
 
 #. @node in Documentation/extending/programming-interface.itely
 #. @section in Documentation/extending/programming-interface.itely
-msgid "Lilypond code blocks"
+msgid "LilyPond code blocks"
 msgstr "LilyPond 代码块"
 
 #. @node in Documentation/extending/programming-interface.itely
index 5d1bcf060c84c41cd90fa6a226837a686fe30e80..f9ca655110d812d795525ddc9da07ef1a508b992 100644 (file)
@@ -4,7 +4,7 @@
 %% and then run scripts/auxiliar/makelsr.py
 %%
 %% This file is in the public domain.
-\version "2.19.7"
+\version "2.19.46"
 
 \header {
   lsrtags = "contexts-and-engravers, specific-notation"
@@ -89,8 +89,6 @@ MyStaff = \context {
   \description "Handles clefs, bar lines, keys, accidentals.  It can contain
 @code{Voice} contexts."
 
-  \consists "Output_property_engraver"
-
   \consists "Font_size_engraver"
 
   \consists "Volta_engraver"
@@ -138,7 +136,6 @@ MyVoice = \context {
   \consists "Font_size_engraver"
 
   % must come before all
-  \consists "Output_property_engraver"
   \consists "Arpeggio_engraver"
   \consists "Multi_measure_rest_engraver"
   \consists "Text_spanner_engraver"
index a12eb1c585a0149ec49a67db20bb4494d41b7c1f..4bf76663c02a31f3b9bce479e38d218a7ca5a764 100644 (file)
@@ -16,7 +16,7 @@ td { border: 1px solid black; text-align: center; }
 
 @end html
 @end ifhtml
-@emph{Last updated Sat Jul  2 15:06:05 UTC 2016
+@emph{Last updated Sun Aug  7 13:59:13 UTC 2016
 }
 @multitable @columnfractions  0.333333333333 0.333333333333 0.333333333333
 
@@ -27,7 +27,7 @@ LilyPond Changes
 @item
 Section titles
 @*
-(2393)
+(2449)
 @tab Francisco Vila
 @*
 
@@ -77,7 +77,7 @@ up to date
 @item
 LilyPond --- \TITLE\
 @*
-(1139)
+(1138)
 @tab Francisco Vila
 @*
 
@@ -256,7 +256,7 @@ up to date
 @item
 LilyPond --- \TITLE\
 @*
-(1139)
+(1138)
 @tab Till Paala
 @*
 
@@ -817,7 +817,7 @@ up to date
 @item
 LilyPond --- \TITLE\
 @*
-(1139)
+(1138)
 @tab Till Paala
 @*
 
@@ -1404,7 +1404,7 @@ partially up to date
 @item
 LilyPond --- \TITLE\
 @*
-(1139)
+(1138)
 @tab Walter Garcia-Fontes
 @*
 
@@ -2734,7 +2734,7 @@ not translated
 @ifhtml
 
 @html
-<span style="background-color: #fcff3c">partially up to date</span>
+<span style="background-color: #fffd3d">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -2843,7 +2843,7 @@ partially translated (95 %)
 @ifhtml
 
 @html
-<span style="background-color: #83fe2c">partially up to date</span>
+<span style="background-color: #8aff2d">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -3362,10 +3362,11 @@ up to date
 @end multitable
 
 
-@multitable @columnfractions  0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667
+@multitable @columnfractions  0.142857142857 0.142857142857 0.142857142857 0.142857142857 0.142857142857 0.142857142857 0.142857142857
 
 @headitem
 LilyPond Notation Reference
+@tab ca
 @tab de
 @tab es
 @tab fr
@@ -3375,6 +3376,29 @@ LilyPond Notation Reference
 Section titles
 @*
 (326)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">translated</span>
+@end html
+@end ifhtml
+@ifnothtml
+translated
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+up to date
+@end ifnothtml
 @tab Till Paala
 @*
 
@@ -3495,7 +3519,30 @@ partially up to date
 @item
 LilyPond --- \TITLE\
 @*
-(1139)
+(1138)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">translated</span>
+@end html
+@end ifhtml
+@ifnothtml
+translated
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+up to date
+@end ifnothtml
 @tab Till Paala
 @*
 
@@ -3617,6 +3664,29 @@ up to date
 1 Musical notation
 @*
 (91)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">translated</span>
+@end html
+@end ifhtml
+@ifnothtml
+translated
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+up to date
+@end ifnothtml
 @tab Till Paala
 @*
 
@@ -3737,7 +3807,30 @@ up to date
 @item
 1.1 Pitches
 @*
-(5169)
+(5224)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">translated</span>
+@end html
+@end ifhtml
+@ifnothtml
+translated
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #25fe1f">partially up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+partially up to date
+@end ifnothtml
 @tab Till Paala
 @*
 
@@ -3755,7 +3848,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #a5ff31">partially up to date</span>
+<span style="background-color: #acff31">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -3778,11 +3871,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">up to date</span>
+<span style="background-color: #25fe1f">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-up to date
+partially up to date
 @end ifnothtml
 @tab Frédéric Chiasson
 @*
@@ -3877,11 +3970,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">up to date</span>
+<span style="background-color: #25fe1f">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-up to date
+partially up to date
 @end ifnothtml
 @tab Yoshiki Sawada
 @*
@@ -3900,7 +3993,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #91ff2e">partially up to date</span>
+<span style="background-color: #97ff2f">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -3909,7 +4002,30 @@ partially up to date
 @item
 1.2 Rhythms
 @*
-(6795)
+(6822)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #d0f0f8">not translated</span>
+@end html
+@end ifhtml
+@ifnothtml
+not translated
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+up to date
+@end ifnothtml
 @tab Till Paala
 @*
 
@@ -3927,7 +4043,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #d4ff37">partially up to date</span>
+<span style="background-color: #dbff38">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -3950,11 +4066,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">up to date</span>
+<span style="background-color: #2cff20">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-up to date
+partially up to date
 @end ifnothtml
 @tab Frédéric Chiasson
 @*
@@ -4060,11 +4176,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">up to date</span>
+<span style="background-color: #2cff20">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-up to date
+partially up to date
 @end ifnothtml
 @tab Yoshiki Sawada
 @*
@@ -4083,7 +4199,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #cdfe36">partially up to date</span>
+<span style="background-color: #dbff38">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -4093,6 +4209,29 @@ partially up to date
 1.3 Expressive marks
 @*
 (1798)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #d0f0f8">not translated</span>
+@end html
+@end ifhtml
+@ifnothtml
+not translated
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+up to date
+@end ifnothtml
 @tab Till Paala
 @*
 
@@ -4265,6 +4404,29 @@ partially up to date
 1.4 Repeats
 @*
 (1288)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #d0f0f8">not translated</span>
+@end html
+@end ifhtml
+@ifnothtml
+not translated
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+up to date
+@end ifnothtml
 @tab Till Paala
 @*
 
@@ -4437,6 +4599,29 @@ partially up to date
 1.5 Simultaneous notes
 @*
 (2919)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #d0f0f8">not translated</span>
+@end html
+@end ifhtml
+@ifnothtml
+not translated
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+up to date
+@end ifnothtml
 @tab Till Paala
 @*
 
@@ -4454,7 +4639,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #97ff2f">partially up to date</span>
+<span style="background-color: #9eff30">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -4477,11 +4662,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">up to date</span>
+<span style="background-color: #25fe1f">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-up to date
+partially up to date
 @end ifnothtml
 @tab Frédéric Chiasson
 @*
@@ -4578,11 +4763,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">up to date</span>
+<span style="background-color: #25fe1f">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-up to date
+partially up to date
 @end ifnothtml
 @tab Yoshiki Sawada
 @*
@@ -4601,7 +4786,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #91ff2e">partially up to date</span>
+<span style="background-color: #97ff2f">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -4611,6 +4796,29 @@ partially up to date
 1.6 Staff notation
 @*
 (2554)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #d0f0f8">not translated</span>
+@end html
+@end ifhtml
+@ifnothtml
+not translated
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+up to date
+@end ifnothtml
 @tab Till Paala
 @*
 
@@ -4772,6 +4980,29 @@ partially up to date
 1.7 Editorial annotations
 @*
 (1477)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #d0f0f8">not translated</span>
+@end html
+@end ifhtml
+@ifnothtml
+not translated
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+up to date
+@end ifnothtml
 @tab Till Paala
 @*
 
@@ -4911,6 +5142,29 @@ partially up to date
 1.8 Text
 @*
 (2754)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #d0f0f8">not translated</span>
+@end html
+@end ifhtml
+@ifnothtml
+not translated
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+up to date
+@end ifnothtml
 @tab Till Paala
 @*
 
@@ -5083,6 +5337,29 @@ partially up to date
 2 Specialist notation
 @*
 (81)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #dfef77">partially translated (2 %)</span>
+@end html
+@end ifhtml
+@ifnothtml
+partially translated (2 %)
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+up to date
+@end ifnothtml
 @tab Till Paala
 @*
 
@@ -5203,7 +5480,30 @@ up to date
 @item
 2.1 Vocal music
 @*
-(4975)
+(4977)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #d0f0f8">not translated</span>
+@end html
+@end ifhtml
+@ifnothtml
+not translated
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+up to date
+@end ifnothtml
 @tab Till Paala
 @*
 
@@ -5365,6 +5665,29 @@ partially up to date
 2.2 Keyboard and other multi-staff instruments
 @*
 (904)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #d0f0f8">not translated</span>
+@end html
+@end ifhtml
+@ifnothtml
+not translated
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+up to date
+@end ifnothtml
 @tab  Till Paala
 @*
 
@@ -5516,7 +5839,30 @@ partially up to date
 @item
 2.3 Unfretted string instruments
 @*
-(303)
+(279)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #d0f0f8">not translated</span>
+@end html
+@end ifhtml
+@ifnothtml
+not translated
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+up to date
+@end ifnothtml
 @tab Till Paala
 @*
 
@@ -5534,7 +5880,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #91ff2e">partially up to date</span>
+<span style="background-color: #9eff30">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -5557,11 +5903,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">up to date</span>
+<span style="background-color: #25fe1f">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-up to date
+partially up to date
 @end ifnothtml
 @tab Valentin Villenave
 @*
@@ -5659,7 +6005,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #83fe2c">partially up to date</span>
+<span style="background-color: #91ff2e">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -5668,7 +6014,30 @@ partially up to date
 @item
 2.4 Fretted string instruments
 @*
-(2820)
+(2821)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #d0f0f8">not translated</span>
+@end html
+@end ifhtml
+@ifnothtml
+not translated
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+up to date
+@end ifnothtml
 @tab Till Paala
 @*
 
@@ -5808,6 +6177,29 @@ partially up to date
 2.5 Percussion
 @*
 (799)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #d0f0f8">not translated</span>
+@end html
+@end ifhtml
+@ifnothtml
+not translated
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+up to date
+@end ifnothtml
 @tab Till Paala
 @*
 
@@ -5825,7 +6217,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #a5ff31">partially up to date</span>
+<span style="background-color: #acff31">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -5939,7 +6331,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #5bff27">partially up to date</span>
+<span style="background-color: #62ff28">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -5949,6 +6341,29 @@ partially up to date
 2.6 Wind instruments
 @*
 (324)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #d0f0f8">not translated</span>
+@end html
+@end ifhtml
+@ifnothtml
+not translated
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+up to date
+@end ifnothtml
 @tab Till Paala
 @*
 
@@ -6095,12 +6510,35 @@ translated
 @end html
 @end ifhtml
 @ifnothtml
-partially up to date
+partially up to date
+@end ifnothtml
+@item
+2.7 Chord notation
+@*
+(1979)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #d0f0f8">not translated</span>
+@end html
+@end ifhtml
+@ifnothtml
+not translated
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+up to date
 @end ifnothtml
-@item
-2.7 Chord notation
-@*
-(1931)
 @tab Till Paala
 @*
 
@@ -6118,7 +6556,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #4efe25">partially up to date</span>
+<span style="background-color: #54ff26">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -6141,11 +6579,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">up to date</span>
+<span style="background-color: #25fe1f">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-up to date
+partially up to date
 @end ifnothtml
 @tab Valentin Villenave
 @*
@@ -6243,7 +6681,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #47ff24">partially up to date</span>
+<span style="background-color: #4efe25">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -6253,6 +6691,29 @@ partially up to date
 2.8 Contemporary music
 @*
 (475)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #d0f0f8">not translated</span>
+@end html
+@end ifhtml
+@ifnothtml
+not translated
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+up to date
+@end ifnothtml
 @tab Till Paala
 @*
 
@@ -6392,6 +6853,29 @@ up to date
 2.9 Ancient notation
 @*
 (5516)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #d0f0f8">not translated</span>
+@end html
+@end ifhtml
+@ifnothtml
+not translated
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+up to date
+@end ifnothtml
 @tab Till Paala
 @*
 
@@ -6409,7 +6893,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #97ff2f">partially up to date</span>
+<span style="background-color: #9eff30">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -6511,6 +6995,29 @@ up to date
 2.10 World music
 @*
 (1446)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #d0f0f8">not translated</span>
+@end html
+@end ifhtml
+@ifnothtml
+not translated
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+up to date
+@end ifnothtml
 @tab Till Paala
 @*
 
@@ -6671,7 +7178,30 @@ partially up to date
 @item
 3 General input and output
 @*
-(12704)
+(12824)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #d0f0f8">not translated</span>
+@end html
+@end ifhtml
+@ifnothtml
+not translated
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+up to date
+@end ifnothtml
 @tab Till Paala
 @*
 
@@ -6689,7 +7219,7 @@ partially translated (94 %)
 @ifhtml
 
 @html
-<span style="background-color: #ffdd42">partially up to date</span>
+<span style="background-color: #ffda43">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -6712,11 +7242,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">up to date</span>
+<span style="background-color: #2cff20">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-up to date
+partially up to date
 @end ifnothtml
 @tab Jean-Charles Malahieude
 @*
@@ -6780,11 +7310,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">up to date</span>
+<span style="background-color: #2cff20">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
-up to date
+partially up to date
 @end ifnothtml
 @tab Yoshiki Sawada
 @*
@@ -6792,18 +7322,18 @@ up to date
 @ifhtml
 
 @html
-<span style="background-color: #dfef77">partially translated (94 %)</span>
+<span style="background-color: #dfef77">partially translated (95 %)</span>
 @end html
 @end ifhtml
 @ifnothtml
-partially translated (94 %)
+partially translated (95 %)
 @end ifnothtml
 @*
 
 @ifhtml
 
 @html
-<span style="background-color: #ffdd42">partially up to date</span>
+<span style="background-color: #ffda43">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -6813,6 +7343,29 @@ partially up to date
 4 Spacing issues
 @*
 (10911)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #d0f0f8">not translated</span>
+@end html
+@end ifhtml
+@ifnothtml
+not translated
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+up to date
+@end ifnothtml
 @tab Till Paala
 @*
 
@@ -6830,7 +7383,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #e8fe39">partially up to date</span>
+<span style="background-color: #efff3a">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -6944,7 +7497,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #e8fe39">partially up to date</span>
+<span style="background-color: #efff3a">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -6953,7 +7506,30 @@ partially up to date
 @item
 5 Changing defaults
 @*
-(15598)
+(15597)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #d0f0f8">not translated</span>
+@end html
+@end ifhtml
+@ifnothtml
+not translated
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+up to date
+@end ifnothtml
 @tab Till Paala
 @*
 
@@ -7105,7 +7681,7 @@ partially translated (94 %)
 @ifhtml
 
 @html
-<span style="background-color: #91ff2e">partially up to date</span>
+<span style="background-color: #97ff2f">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -7114,7 +7690,30 @@ partially up to date
 @item
 A Notation manual tables
 @*
-(3077)
+(3079)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #d0f0f8">not translated</span>
+@end html
+@end ifhtml
+@ifnothtml
+not translated
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+up to date
+@end ifnothtml
 @tab Till Paala
 @*
 
@@ -7132,7 +7731,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #e1ff39">partially up to date</span>
+<span style="background-color: #e8fe39">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -7236,6 +7835,29 @@ up to date
 B Cheat sheet
 @*
 (252)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #d0f0f8">not translated</span>
+@end html
+@end ifhtml
+@ifnothtml
+not translated
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+up to date
+@end ifnothtml
 @tab Till Paala
 @*
 
@@ -7375,6 +7997,29 @@ partially up to date
 C GNU Free Documentation License
 @*
 (3724)
+@tab Walter Garcia-Fontes
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #d0f0f8">not translated</span>
+@end html
+@end ifhtml
+@ifnothtml
+not translated
+@end ifnothtml
+@*
+
+@ifhtml
+
+@html
+<span style="background-color: #1fff1f">up to date</span>
+@end html
+@end ifhtml
+@ifnothtml
+up to date
+@end ifnothtml
 @tab Till Paala
 @*
 
@@ -7698,7 +8343,7 @@ up to date
 @item
 LilyPond --- \TITLE\
 @*
-(1139)
+(1138)
 @tab Walter Garcia-Fontes
 @*
 
@@ -8751,7 +9396,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #6fff29">partially up to date</span>
+<span style="background-color: #76fe2a">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -8774,7 +9419,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #7dff2b">partially up to date</span>
+<span style="background-color: #83fe2c">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -8953,7 +9598,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #7dff2b">partially up to date</span>
+<span style="background-color: #83fe2c">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
@@ -9186,11 +9831,11 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #1fff1f">up to date</span>
+<span style="background-color: #d587ff"></span>
 @end html
 @end ifhtml
 @ifnothtml
-up to date
+
 @end ifnothtml
 @tab Pavel Fric
 @*
@@ -9450,7 +10095,7 @@ partially up to date
 @item
 LilyPond --- \TITLE\
 @*
-(1139)
+(1138)
 @tab Walter Garcia-Fontes
 @*
 
@@ -9798,7 +10443,7 @@ translated
 @ifhtml
 
 @html
-<span style="background-color: #2cff20">partially up to date</span>
+<span style="background-color: #33ff21">partially up to date</span>
 @end html
 @end ifhtml
 @ifnothtml
index 56ddfe24c84b5061429a72aaf1aec56ce528012b..73de64e0f99f35b8350d32140826e1782b90c154 100644 (file)
@@ -296,13 +296,13 @@ Another very useful debugging technique is constructing
 @cindex makefiles
 @cindex make
 
-Pretty well all the platforms Lilypond can run on support a software
+Pretty well all the platforms LilyPond can run on support a software
 facility called @code{make}.  This software reads a special file called a
 @code{Makefile} that defines what files depend on what others and what
 commands you need to give the operating system to produce one file from
 another.  For example the makefile would spell out how to produce
 @file{ballad.pdf} and @file{ballad.midi} from @file{ballad.ly} by
-running Lilypond.
+running LilyPond.
 
 There are times when it is a good idea to create a @code{Makefile}
 for your project, either for your own convenience or
index 77eda53f3a7adb37a1d89f4036b27ecd9bb554ae..2ea2085ab9ef85d467223b315269e601b9bd0063 100644 (file)
@@ -391,7 +391,7 @@ The colors have been added for better visibility.
 @subheading Customized Output
 
 A short excerpt from Stockhausen's Klavierstück II to demonstrate
-Lilypond's ability to provide customised output.
+LilyPond's ability to provide customised output.
 
 @exampleImage{Stockhausen_Klavierstueck2}
 @divEnd
@@ -612,8 +612,8 @@ Some highlights:
 version of Richard Strauss's @emph{Der Rosenkavalier} for four singers
 and a chamber orchestra of thirteen players.  This has been commissioned
 by the Berlin Philharmonic Orchestra whose members will be the performers on
-@uref{http://www.festspielhaus.de/veranstaltung/der-kleine-rosenkavalier-02-04-2015-1100/,April 2nd and 6th} 
-at the Festspielhaus, Baden-Baden, and on 
+@uref{http://www.festspielhaus.de/veranstaltung/der-kleine-rosenkavalier-02-04-2015-1100/,April 2nd and 6th}
+at the Festspielhaus, Baden-Baden, and on
 @uref{http://www.berliner-philharmoniker.de/konzerte/kalender/details/21070/,April 26th}
 in the @emph{Philharmonie (großer Saal)}, Berlin.  We are pleased to see
 musicians of such reputation playing from LilyPond scores -- and they are
index 349678b75df7f620510f7fbe57c027638983c005..67ce189469cd06d890890fd946ce91dfceb42d71 100644 (file)
@@ -9,19 +9,19 @@
 @c used for news about the upcoming release; see CG 10.2
 
 @newsItem
-@subheading LilyPond 2.19.45 released  @emph{July 09, 2016}
+@subheading LilyPond 2.19.47 released  @emph{August 13, 2016}
 
 We are happy to announce the release of LilyPond
-2.19.45.  This release includes a number of enhancements, and contains some
+2.19.47.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
 
 @newsItem
-@subheading Lilypond 2.18.2 released!  @emph{March 23, 2014}
+@subheading LilyPond 2.18.2 released!  @emph{March 23, 2014}
 
 We are proud to announce the release of GNU LilyPond 2.18.2.
 LilyPond is a music engraving program devoted to producing the
@@ -53,7 +53,7 @@ from data encoded directly in the LilyPond score.
 
 
 @newsItem
-@subheading Lilypond 2.18.0 released!  @emph{December 29, 2013}
+@subheading LilyPond 2.18.0 released!  @emph{December 29, 2013}
 
 We are proud to announce the release of GNU LilyPond 2.18.0.
 LilyPond is a music engraving program devoted to producing the
index c92da5f53461eca38257a7f9927fe5853f701d3d..32cd7bde51eb6aeb941687f77a97f743545171dd 100644 (file)
@@ -26,6 +26,30 @@ NOTE:
   * don't duplicate entries from news-front.itexi
 @end ignore
 
+@newsItem
+@subheading LilyPond 2.19.46 released  @emph{July 26, 2016}
+
+We are happy to announce the release of LilyPond
+2.19.46.  This release includes a number of enhancements, and contains some
+work in progress.  You will have access to the very latest features, but
+some may be incomplete, and you may encounter bugs and crashes.  If you
+require a stable version of LilyPond, we recommend using the 2.18
+version.
+
+@newsEnd
+
+@newsItem
+@subheading LilyPond 2.19.45 released  @emph{July 09, 2016}
+
+We are happy to announce the release of LilyPond
+2.19.45.  This release includes a number of enhancements, and contains some
+work in progress.  You will have access to the very latest features, but
+some may be incomplete, and you may encounter bugs and crashes.  If you
+require a stable version of LilyPond, we recommend using the 2.18
+version.
+
+@newsEnd
+
 @newsItem
 @subheading LilyPond 2.19.44 released  @emph{June 21, 2016}
 
@@ -33,7 +57,7 @@ We are happy to announce the release of LilyPond
 2.19.44.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -45,7 +69,7 @@ We are happy to announce the release of LilyPond
 2.19.43.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -57,7 +81,7 @@ We are happy to announce the release of LilyPond
 2.19.42.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -69,7 +93,7 @@ We are happy to announce the release of LilyPond
 2.19.41.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -81,7 +105,7 @@ We are happy to announce the release of LilyPond
 2.19.40.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -93,7 +117,7 @@ We are happy to announce the release of LilyPond
 2.19.39.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -105,7 +129,7 @@ We are happy to announce the release of LilyPond
 2.19.38.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -117,7 +141,7 @@ We are happy to announce the release of LilyPond
 2.19.37.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -129,7 +153,7 @@ We are happy to announce the release of LilyPond
 2.19.36.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -141,7 +165,7 @@ We are happy to announce the release of LilyPond
 2.19.35.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -153,7 +177,7 @@ We are happy to announce the release of LilyPond
 2.19.34.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -165,7 +189,7 @@ We are happy to announce the release of LilyPond
 2.19.33.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -177,7 +201,7 @@ We are happy to announce the release of LilyPond
 2.19.32.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -189,7 +213,7 @@ We are happy to announce the release of LilyPond
 2.19.31.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -201,7 +225,7 @@ We are happy to announce the release of LilyPond
 2.19.30.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -213,7 +237,7 @@ We are happy to announce the release of LilyPond
 2.19.29.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -225,7 +249,7 @@ We are happy to announce the release of LilyPond
 2.19.28.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -237,7 +261,7 @@ We are happy to announce the release of LilyPond
 2.19.27.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -249,7 +273,7 @@ We are happy to announce the release of LilyPond
 2.19.26.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -261,7 +285,7 @@ We are happy to announce the release of LilyPond
 2.19.25.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -273,7 +297,7 @@ We are happy to announce the release of LilyPond
 2.19.24.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -285,7 +309,7 @@ We are happy to announce the release of LilyPond
 2.19.23.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -297,7 +321,7 @@ We are happy to announce the release of LilyPond
 2.19.22.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -309,7 +333,7 @@ We are happy to announce the release of LilyPond
 2.19.21.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -321,7 +345,7 @@ We are happy to announce the release of LilyPond
 2.19.20.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -333,7 +357,7 @@ We are happy to announce the release of LilyPond
 2.19.19.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -345,7 +369,7 @@ We are happy to announce the release of LilyPond
 2.19.18.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -357,7 +381,7 @@ We are happy to announce the release of LilyPond
 2.19.17.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -369,7 +393,7 @@ At long last, we are very happy to announce the release of LilyPond
 2.19.16.  This release includes a number of enhancements, and contains some
 work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 We would like to acknowledge and thank Masamichi Hosoda for making this
@@ -384,7 +408,7 @@ We are happy to announce the release of LilyPond 2.19.15.  This
 release includes a number of enhancements, and contains some work
 in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -396,7 +420,7 @@ We are happy to announce the release of LilyPond 2.19.14.  This
 release includes a number of enhancements, and contains some work
 in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -408,7 +432,7 @@ We are happy to announce the release of LilyPond 2.19.13.  This
 release includes a number of enhancements, and contains some work
 in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -420,7 +444,7 @@ We are happy to announce the release of LilyPond 2.19.12.  This
 release includes a number of enhancements, and contains some work
 in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -432,7 +456,7 @@ We are happy to announce the release of LilyPond 2.19.11.  This
 release includes a number of enhancements, and contains some work
 in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -444,7 +468,7 @@ We are happy to announce the release of LilyPond 2.19.10.  This
 release includes a number of enhancements, and contains some work
 in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -456,7 +480,7 @@ We are happy to announce the release of LilyPond 2.19.9.  This
 release includes a number of enhancements, and contains some work
 in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -468,7 +492,7 @@ We are happy to announce the release of LilyPond 2.19.8.  This
 release includes a number of enhancements, and contains some work
 in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -480,7 +504,7 @@ We are happy to announce the release of LilyPond 2.19.7.  This
 release includes a number of enhancements, and contains some work
 in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -492,7 +516,7 @@ We are happy to announce the release of LilyPond 2.19.6.  This
 release includes a number of enhancements, and contains some work
 in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you
-require a stable version of Lilypond, we recommend using the 2.18
+require a stable version of LilyPond, we recommend using the 2.18
 version.
 
 @newsEnd
@@ -504,7 +528,7 @@ We are happy to announce the release of LilyPond 2.19.5.  This
 release includes a number of enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.18 version.
+a stable version of LilyPond, we recommend using the 2.18 version.
 
 @newsEnd
 
@@ -515,7 +539,7 @@ We are happy to announce the release of LilyPond 2.19.4.  This
 release includes a number of enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.18 version.
+a stable version of LilyPond, we recommend using the 2.18 version.
 
 @newsEnd
 
@@ -548,7 +572,7 @@ We are happy to announce the release of LilyPond 2.19.3.  This
 release includes a number of enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.18 version.
+a stable version of LilyPond, we recommend using the 2.18 version.
 
 @newsEnd
 
@@ -573,7 +597,7 @@ We are happy to announce the release of LilyPond 2.19.2.  This
 release includes a number of enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.18 version.
+a stable version of LilyPond, we recommend using the 2.18 version.
 
 @newsEnd
 
@@ -584,7 +608,7 @@ We are happy to announce the release of LilyPond 2.19.1.  This
 release includes a number of enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.18 version.
+a stable version of LilyPond, we recommend using the 2.18 version.
 
 @newsEnd
 
@@ -595,7 +619,7 @@ We are happy to announce the release of LilyPond 2.19.0.  This
 release includes a number of enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.18 version.
+a stable version of LilyPond, we recommend using the 2.18 version.
 
 @newsEnd
 
@@ -649,7 +673,7 @@ We are happy to announce the release of LilyPond 2.17.29.  This
 release contains the usual number of bugfixes and enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.16 version.
+a stable version of LilyPond, we recommend using the 2.16 version.
 
 @newsEnd
 
@@ -660,7 +684,7 @@ We are happy to announce the release of LilyPond 2.17.28.  This
 release contains the usual number of bugfixes and enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.16 version.
+a stable version of LilyPond, we recommend using the 2.16 version.
 
 @newsEnd
 
@@ -671,7 +695,7 @@ We are happy to announce the release of LilyPond 2.17.27.  This
 release contains the usual number of bugfixes and enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.16 version.
+a stable version of LilyPond, we recommend using the 2.16 version.
 
 @newsEnd
 
@@ -682,7 +706,7 @@ We are happy to announce the release of LilyPond 2.17.26.  This
 release contains the usual number of bugfixes and enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.16 version.
+a stable version of LilyPond, we recommend using the 2.16 version.
 
 @newsEnd
 
@@ -693,7 +717,7 @@ We are happy to announce the release of LilyPond 2.17.25.  This
 release contains the usual number of bugfixes and enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.16 version.
+a stable version of LilyPond, we recommend using the 2.16 version.
 
 @newsEnd
 
@@ -704,7 +728,7 @@ We are happy to announce the release of LilyPond 2.17.24.  This
 release contains the usual number of bugfixes and enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.16 version.
+a stable version of LilyPond, we recommend using the 2.16 version.
 
 @newsEnd
 
@@ -715,7 +739,7 @@ We are happy to announce the release of LilyPond 2.17.23.  This
 release contains the usual number of bugfixes and enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.16 version.
+a stable version of LilyPond, we recommend using the 2.16 version.
 
 @newsEnd
 
@@ -726,7 +750,7 @@ We are happy to announce the release of LilyPond 2.17.22.  This
 release contains the usual number of bugfixes and enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.16 version.
+a stable version of LilyPond, we recommend using the 2.16 version.
 
 This update cures the issue with the Windows version crashing with a problem
 with positioning text.
@@ -740,7 +764,7 @@ We are happy to announce the release of LilyPond 2.17.21.  This
 release contains the usual number of bugfixes and enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.16 version.
+a stable version of LilyPond, we recommend using the 2.16 version.
 
 @newsEnd
 
@@ -751,7 +775,7 @@ We are happy to announce the release of LilyPond 2.17.20.  This
 release contains the usual number of bugfixes and enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.16 version.
+a stable version of LilyPond, we recommend using the 2.16 version.
 
 @newsEnd
 
@@ -770,7 +794,7 @@ We are happy to announce the release of LilyPond 2.17.19.  This
 release contains the usual number of bugfixes and enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.16 version.
+a stable version of LilyPond, we recommend using the 2.16 version.
 
 @newsEnd
 
@@ -781,7 +805,7 @@ We are happy to announce the release of LilyPond 2.17.18.  This
 release contains the usual number of bugfixes and enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.16 version.
+a stable version of LilyPond, we recommend using the 2.16 version.
 
 @newsEnd
 
@@ -792,7 +816,7 @@ We are happy to announce the release of LilyPond 2.17.17.  This
 release contains the usual number of bugfixes and enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.16 version.
+a stable version of LilyPond, we recommend using the 2.16 version.
 
 @newsEnd
 
@@ -803,7 +827,7 @@ We are happy to announce the release of LilyPond 2.17.16.  This
 release contains the usual number of bugfixes and enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.16 version.
+a stable version of LilyPond, we recommend using the 2.16 version.
 
 @newsEnd
 
@@ -814,7 +838,7 @@ We are happy to announce the release of LilyPond 2.17.15.  This
 release contains the usual number of bugfixes and enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.16 version.
+a stable version of LilyPond, we recommend using the 2.16 version.
 
 @newsEnd
 
@@ -826,7 +850,7 @@ release contains the usual number of bugfixes (including putting span bars back
 where they should be) and enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.16 version.
+a stable version of LilyPond, we recommend using the 2.16 version.
 
 @newsEnd
 
@@ -837,7 +861,7 @@ We are happy to announce the release of LilyPond 2.17.13.  This
 release contains the usual number of bugfixes and enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.16 version.
+a stable version of LilyPond, we recommend using the 2.16 version.
 
 @newsEnd
 
@@ -848,7 +872,7 @@ We are happy to announce the release of LilyPond 2.17.12.  This
 release contains the usual number of bugfixes and enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.16 version.
+a stable version of LilyPond, we recommend using the 2.16 version.
 
 @newsEnd
 
@@ -859,7 +883,7 @@ We are happy to announce the release of LilyPond 2.17.11.  This
 release contains the usual number of bugfixes and enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.16 version.
+a stable version of LilyPond, we recommend using the 2.16 version.
 
 @newsEnd
 
@@ -870,7 +894,7 @@ We are happy to announce the release of LilyPond 2.17.10.  This
 release contains the usual number of bugfixes and enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.16 version.
+a stable version of LilyPond, we recommend using the 2.16 version.
 
 @newsEnd
 
@@ -890,7 +914,7 @@ We are happy to announce the release of LilyPond 2.17.9.  This
 release contains the usual number of bugfixes and enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.16 version.
+a stable version of LilyPond, we recommend using the 2.16 version.
 
 @newsEnd
 
@@ -901,7 +925,7 @@ We are happy to announce the release of LilyPond 2.17.8.  This
 release contains the usual number of bugfixes and enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.16 version.
+a stable version of LilyPond, we recommend using the 2.16 version.
 
 @newsEnd
 
@@ -912,7 +936,7 @@ We are happy to announce the release of LilyPond 2.17.7.  This
 release contains the usual number of bugfixes and enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.16 version.
+a stable version of LilyPond, we recommend using the 2.16 version.
 
 @newsEnd
 
@@ -956,7 +980,7 @@ We are happy to announce the release of LilyPond 2.17.6.  This
 release contains the usual number of bugfixes and enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.16 version.
+a stable version of LilyPond, we recommend using the 2.16 version.
 
 @newsEnd
 
@@ -967,7 +991,7 @@ We are happy to announce the release of LilyPond 2.17.5.  This
 release contains the usual number of bugfixes and enhancements, and contains
 some work in progress.  You will have access to the very latest features, but
 some may be incomplete, and you may encounter bugs and crashes.  If you require
-a stable version of Lilypond, we recommend using the 2.16 version.
+a stable version of LilyPond, we recommend using the 2.16 version.
 
 @newsEnd
 
@@ -1023,7 +1047,7 @@ and instead use the stable 2.16 version.
 @newsEnd
 
 @newsItem
-@subheading Lilypond 2.16.0 released!  @emph{August 24, 2012}
+@subheading LilyPond 2.16.0 released!  @emph{August 24, 2012}
 
 We are proud to announce the release of GNU LilyPond 2.16.0.
 LilyPond is a music engraving program, devoted to producing the
@@ -1086,7 +1110,7 @@ Jean-Charles Malahieude, Till Paala, Yoshiki Sawada
 @newsEnd
 
 @newsItem
-@subheading Lilypond 2.15.95 released!  @emph{August 11, 2012}
+@subheading LilyPond 2.15.95 released!  @emph{August 11, 2012}
 
 We are excited to announce the release of LilyPond 2.15.95.
 With this release, development on version 2.15 is frozen for the
index 48e5871a2ef68d447b34a372a04e43cf21b8a686..099f6ede9677e2685ce48ef0c687e94b73607de4 100644 (file)
@@ -16,7 +16,7 @@ td { border: 1px solid black; text-align: center; }
 
 @end html
 @end ifhtml
-@emph{最近更新 Sat Jul  2 15:06:05 UTC 2016
+@emph{最近更新 Sun Aug  7 13:59:13 UTC 2016
 }
 @multitable @columnfractions  0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667 0.166666666667
 
@@ -59,7 +59,7 @@ Anthony Fok
 @item
 LilyPond --- \TITLE\
 @*
-1139
+1138
 @tab Ben Luo
 @*
 Anthony Fok
index 25572a1616a0f236625a0edb0115f183f4052797..b285145bd22e5346c7c4e4c73e1eaa5fe09be8d6 100644 (file)
@@ -1,10 +1,7 @@
 INSTALL - compiling and installing GNU LilyPond
 ***********************************************
 
-Table of Contents
-*****************
 
-INSTALL - compiling and installing GNU LilyPond
 1 Compilation
   1.1 Overview of compiling
   1.2 Requirements
@@ -17,24 +14,24 @@ INSTALL - compiling and installing GNU LilyPond
       Other
     1.2.3 Requirements for building documentation
   1.3 Getting the source code
-  1.4 Configuring `make'
-    1.4.1 Running `./autogen.sh'
-    1.4.2 Running `../configure'
+  1.4 Configuring ‘make’
+    1.4.1 Running ‘./autogen.sh’
+    1.4.2 Running ‘../configure’
       Configuration options
       Checking build dependencies
       Configuring target directories
   1.5 Compiling LilyPond
-    1.5.1 Using `make'
-    1.5.2 Saving time with the `-j' option
+    1.5.1 Using ‘make’
+    1.5.2 Saving time with the ‘-j’ option
     1.5.3 Compiling for multiple platforms
-    1.5.4 Useful `make' variables
+    1.5.4 Useful ‘make’ variables
   1.6 Post-compilation options
     1.6.1 Installing LilyPond from a local build
     1.6.2 Generating documentation
-      Documentation editor's edit/compile cycle
+      Documentation editors edit/compile cycle
       Building documentation
       Building a single document
-      Saving time with `CPU_COUNT'
+      Saving time with ‘CPU_COUNT’
       AJAX search
       Installing documentation
       Building documentation without compiling
@@ -47,8 +44,6 @@ INSTALL - compiling and installing GNU LilyPond
     Using lilypond python libraries
   1.8 Concurrent stable and development versions
   1.9 Build system
-
-
 1 Compilation
 *************
 
@@ -60,7 +55,7 @@ recommended for developers and packagers.  Typical program users are
 instead encouraged to obtain the program from a package manager (on
 Unix) or by downloading a precompiled binary configured for a specific
 operating system.  Pre-compiled binaries are available on the *note
-Download: (lilypond-web)Download. page.
+(lilypond-web)Download:: page.
 
    Compiling LilyPond from source is necessary if you want to build,
 install, or test your own version of the program.
@@ -68,13 +63,13 @@ install, or test your own version of the program.
    A successful compile can also be used to generate and install the
 documentation, incorporating any changes you may have made.  However, a
 successful compile is not a requirement for generating the
-documentation.  The documentation can be built using a Git repository
-in conjunction with a locally installed copy of the program.  For more
+documentation.  The documentation can be built using a Git repository in
+conjunction with a locally installed copy of the program.  For more
 information, see *note Building documentation without compiling::.
 
    Attempts to compile LilyPond natively on Windows have been
-unsuccessful, though a workaround is available (see *note LilyDev:
-(lilypond-contributor)LilyDev.).
+unsuccessful, though a workaround is available (see *note
+(lilypond-contributor)LilyDev::).
 
 1.2 Requirements
 ================
@@ -85,23 +80,23 @@ unsuccessful, though a workaround is available (see *note LilyDev:
 This section contains the list of separate software packages that are
 required to run LilyPond.
 
-   * DejaVu fonts (http://www.dejavu-fonts.org/) These are normally
+    DejaVu fonts (http://www.dejavu-fonts.org/) These are normally
      installed by default.
 
-   * FontConfig (http://www.fontconfig.org/) Use version 2.4.0 or newer.
+    FontConfig (http://www.fontconfig.org/) Use version 2.4.0 or newer.
 
-   * Freetype (http://www.freetype.org/) Use version 2.1.10 or newer.
+    Freetype (http://www.freetype.org/) Use version 2.1.10 or newer.
 
-   * Ghostscript (http://www.ghostscript.com) Use version 8.60 or newer.
+    Ghostscript (http://www.ghostscript.com) Use version 8.60 or newer.
 
-   * Guile (http://www.gnu.org/software/guile/guile.html) Use version
-     1.8.8. Version 2.x of Guile is not currently supported.
+    Guile (http://www.gnu.org/software/guile/guile.html) Use version
+     1.8.8.  Version 2.x of Guile is not currently supported.
 
-   * Pango (http://www.pango.org/) User version 1.12 or newer.
+    Pango (http://www.pango.org/) User version 1.12 or newer.
 
-   * Python (http://www.python.org) Use version 2.4 or newer.
+    Python (http://www.python.org) Use version 2.4 or newer.
 
-   * International fonts.  For example:
+    International fonts.  For example:
 
      Fedora:
 
@@ -126,7 +121,6 @@ required to run LilyPond.
      These are normally installed by default and are required only to
      create music with international text or lyrics.
 
-
 1.2.2 Requirements for compiling LilyPond
 -----------------------------------------
 
@@ -137,30 +131,30 @@ the software packages required to build LilyPond.
 simple commands to download all the software needed.  For others, there
 is an explicit list of all the individual packages (as well as where to
 get them from) for those that are not already included in your
-distributions' own repositories.
+distributions own repositories.
 
 Fedora
 ......
 
-The following instructions were tested on `Fedora' versions 22 & 23 and
+The following instructions were tested on ‘Fedora’ versions 22 & 23 and
 will download all the software required to both compile LilyPond and
 build the documentation.
 
-   * Download and install all the LilyPond build-dependencies
+    Download and install all the LilyPond build-dependencies
      (approximately 700MB);
 
           sudo dnf builddep lilypond --nogpgcheck
 
-   * Download and install additional `build' tools required for
+   • Download and install additional ‘build’ tools required for
      compiling;
 
           sudo dnf install autoconf gcc-c++
 
-   * Download `texi2html 1.82' directly from:
-     `http://download.savannah.gnu.org/releases/texi2html/texi2html-1.82.tar.gz';
+   • Download ‘texi2html 1.82’ directly from:
+     <http://download.savannah.gnu.org/releases/texi2html/texi2html-1.82.tar.gz>;
 
-     `texi2html' is only required if you intend to compile LilyPond's
-     own documentation (e.g. to help with any document writing).  The
+     ‘texi2html’ is only required if you intend to compile LilyPond’s
+     own documentation (e.g.  to help with any document writing).  The
      version available in the Fedora repositories is too new and will
      not work.  Extract the files into an appropriate location and then
      run the commands;
@@ -169,50 +163,47 @@ build the documentation.
           make
           sudo make install
 
-     This should install `texi2html 1.82' into `/usr/local/bin', which
-     will normally take priority over `/usr/bin' where the later,
+     This should install ‘texi2html 1.82’ into ‘/usr/local/bin’, which
+     will normally take priority over ‘/usr/bin’ where the later,
      pre-installed versions gets put.  Now verify that your operating
-     system is able to see the correct version of `texi2html'.
+     system is able to see the correct version of ‘texi2html’.
 
           texi2html --version
 
-   * Although not `required' to compile LilyPond, if you intend to
-     contribute to LilyPond (codebase or help improve the
-     documentation) then it is recommended that you also need to
-     install `git'.
+   • Although not ‘required’ to compile LilyPond, if you intend to
+     contribute to LilyPond (codebase or help improve the documentation)
+     then it is recommended that you also need to install ‘git’.
 
           sudo dnf install git
 
-     Also see *note Starting with Git: (lilypond-notation)Starting with
-     Git.
+     Also see *note (lilypond-notation)Starting with Git::.
 
-   * To use the `lily-git.tcl' GUI;
+   • To use the ‘lily-git.tcl’ GUI;
 
           sudo dnf install tk
 
-     See *note lily-git: (lilypond-notation)lily-git.
-
+     See *note (lilypond-notation)lily-git::.
 
-          Note: By default, when building LilyPond's documentation,
-          `pdfTeX' is be used.  However ligatures (fi, fl, ff etc.) may
+          Note: By default, when building LilyPonds documentation,
+          ‘pdfTeX’ is be used.  However ligatures (fi, fl, ff etc.)  may
           not be printed in the PDF output.  In this case XeTeX can be
-          used instead.  Download and install the `texlive-xetex'
+          used instead.  Download and install the ‘texlive-xetex’
           package.
 
                sudo dnf install texlive-xetex
 
           The scripts used to build the LilyPond documentation will use
-          `XeTex' instead of `pdfTex' to generate the PDF documents if
+          ‘XeTex’ instead of ‘pdfTex’ to generate the PDF documents if
           it is available.  No additional configuration is required.
 
 Linux Mint
 ..........
 
-The following instructions were tested on `Linux Mint 17.1' and `LMDE -
-Betsy' and will download all the software required to both compile
+The following instructions were tested on ‘Linux Mint 17.1’ and ‘LMDE -
+Betsy and will download all the software required to both compile
 LilyPond and build the documentation..
 
-   * Enable the _sources_ repository;
+    Enable the _sources_ repository;
 
        1. Using the _Software Sources_ GUI (located under
           _Administration_).
@@ -225,141 +216,131 @@ LilyPond and build the documentation..
        4. Click the _Update the cache_ button and when it has completed,
           close the _Software Sources_ GUI.
 
-
-   * Download and install all the LilyPond build-dependencies
+   • Download and install all the LilyPond build-dependencies
      (approximately 200MB);
 
           sudo apt-get build-dep lilypond
 
-   * Download and install additional `build' tools required for
+   • Download and install additional ‘build’ tools required for
      compiling;
 
           sudo apt-get install autoconf fonts-texgyre texlive-lang-cyrillic
 
-   * Although not `required' to compile LilyPond, if you intend to
-     contribute to LilyPond (codebase or help improve the
-     documentation) then it is recommended that you also need to
-     install `git'.
+   • Although not ‘required’ to compile LilyPond, if you intend to
+     contribute to LilyPond (codebase or help improve the documentation)
+     then it is recommended that you also need to install ‘git’.
 
           sudo apt-get install git
 
-     Also see *note Starting with Git: (lilypond-notation)Starting with
-     Git.
+     Also see *note (lilypond-notation)Starting with Git::.
 
-   * To use the `lily-git.tcl' GUI;
+   • To use the ‘lily-git.tcl’ GUI;
 
           sudo apt-get install tk
 
-     Also see *note lily-git: (lilypond-notation)lily-git.
-
+     Also see *note (lilypond-notation)lily-git::.
 
-          Note: By default, when building LilyPond's documentation,
-          `pdfTeX' is be used.  However ligatures (fi, fl, ff etc.) may
+          Note: By default, when building LilyPonds documentation,
+          ‘pdfTeX’ is be used.  However ligatures (fi, fl, ff etc.)  may
           not be printed in the PDF output.  In this case XeTeX can be
-          used instead.  Download and install the `texlive-xetex'
+          used instead.  Download and install the ‘texlive-xetex’
           package.
 
                sudo apt-get install texlive-xetex
 
           The scripts used to build the LilyPond documentation will use
-          `XeTex' instead of `pdfTex' to generate the PDF documents if
+          ‘XeTex’ instead of ‘pdfTex’ to generate the PDF documents if
           it is available.  No additional configuration is required.
 
 OpenSUSE
 ........
 
-The following instructions were tested on `OpenSUSE 13.2' and will
+The following instructions were tested on ‘OpenSUSE 13.2’ and will
 download all the software required to both compile LilyPond and build
 the documentation.
 
-   * Add the _sources_ repository;
+    Add the _sources_ repository;
 
           sudo zypper addrepo -f \
           "http://download.opensuse.org/source/distribution/13.2/repo/oss/" sources
 
-   * Download and install all the LilyPond build-dependencies
+    Download and install all the LilyPond build-dependencies
      (approximately 680MB);
 
           sudo zypper source-install lilypond
 
-   * Download and install additional `build' tools required for
+   • Download and install additional ‘build’ tools required for
      compiling;
 
           sudo zypper install make
 
-   * Although not `required' to compile LilyPond, if you intend to
-     contribute to LilyPond (codebase or help improve the
-     documentation) then it is recommended that you also need to
-     install `git'.
+   • Although not ‘required’ to compile LilyPond, if you intend to
+     contribute to LilyPond (codebase or help improve the documentation)
+     then it is recommended that you also need to install ‘git’.
 
           sudo zypper install git
 
-     Also see *note Starting with Git: (lilypond-notation)Starting with
-     Git.
+     Also see *note (lilypond-notation)Starting with Git::.
 
-   * To use the `lily-git.tcl' GUI;
+   • To use the ‘lily-git.tcl’ GUI;
 
           sudo zypper install tk
 
-     Also see *note lily-git: (lilypond-notation)lily-git.
+     Also see *note (lilypond-notation)lily-git::.
 
-
-          Note: By default, when building LilyPond's documentation,
-          `pdfTeX' is be used.  However ligatures (fi, fl, ff etc.) may
+          Note: By default, when building LilyPond’s documentation,
+          ‘pdfTeX’ is be used.  However ligatures (fi, fl, ff etc.)  may
           not be printed in the PDF output.  In this case XeTeX can be
-          used instead.  Download and install the `texlive-xetex'
+          used instead.  Download and install the ‘texlive-xetex’
           package.
 
                sudo zypper install texlive-xetex
 
           The scripts used to build the LilyPond documentation will use
-          `XeTex' instead of `pdfTex' to generate the PDF documents if
+          ‘XeTex’ instead of ‘pdfTex’ to generate the PDF documents if
           it is available.  No additional configuration is required.
 
 Ubuntu
 ......
 
-The following commands were tested on Ubuntu versions `14.04 LTS',
-`14.10' and `15.04' and will download all the software required to both
+The following commands were tested on Ubuntu versions ‘14.04 LTS’,
+‘14.10’ and ‘15.04’ and will download all the software required to both
 compile LilyPond and build the documentation.
 
-   * Download and install all the LilyPond build-dependencies
+    Download and install all the LilyPond build-dependencies
      (approximately 200MB);
 
           sudo apt-get build-dep lilypond
 
-   * Download and install additional `build' tools required for
+   • Download and install additional ‘build’ tools required for
      compiling;
 
           sudo apt-get install autoconf fonts-texgyre texlive-lang-cyrillic
 
-   * Although not `required' to compile LilyPond, if you intend to
-     contribute to LilyPond (codebase or help improve the
-     documentation) then it is recommended that you also need to
-     install `git'.
+   • Although not ‘required’ to compile LilyPond, if you intend to
+     contribute to LilyPond (codebase or help improve the documentation)
+     then it is recommended that you also need to install ‘git’.
 
           sudo apt-get install git
 
-     Also see *note Starting with Git: (lilypond-notation)Starting with
-     Git.
+     Also see *note (lilypond-notation)Starting with Git::.
 
-   * To use the `lily-git.tcl' GUI;
+   • To use the ‘lily-git.tcl’ GUI;
 
           sudo apt-get install tk
 
-     Also see *note lily-git: (lilypond-notation)lily-git.
-
+     Also see *note (lilypond-notation)lily-git::.
 
-          Note: By default, when building LilyPond's documentation,
-          `pdfTeX' is be used.  However ligatures (fi, fl, ff etc.) may
+          Note: By default, when building LilyPonds documentation,
+          ‘pdfTeX’ is be used.  However ligatures (fi, fl, ff etc.)  may
           not be printed in the PDF output.  In this case XeTeX can be
-          used instead.  Download and install the `texlive-xetex'
+          used instead.  Download and install the ‘texlive-xetex’
           package.
 
                sudo apt-get install texlive-xetex
 
           The scripts used to build the LilyPond documentation will use
-          `XeTex' instead of `pdfTex' to generate the PDF documents if
+          ‘XeTex’ instead of ‘pdfTex’ to generate the PDF documents if
           it is available.  No additional configuration is required.
 
 Other
@@ -368,69 +349,69 @@ Other
 The following individual software packages are required just to compile
 LilyPond.
 
-   * GNU Autoconf (http://www.gnu.org/software/autoconf)
+    GNU Autoconf (http://www.gnu.org/software/autoconf)
 
-   * GNU Bison (http://www.gnu.org/software/bison/)
+    GNU Bison (http://www.gnu.org/software/bison/)
 
-     Use version `2.0' or newer.
+     Use version ‘2.0’ or newer.
 
-   * GNU Compiler Collection (http://gcc.gnu.org/)
+    GNU Compiler Collection (http://gcc.gnu.org/)
 
-     Use version `3.4' or newer (`4.x' recommended).
+     Use version ‘3.4’ or newer (‘4.x’ recommended).
 
-   * Flex (http://flex.sourceforge.net/)
+    Flex (http://flex.sourceforge.net/)
 
-   * FontForge (http://fontforge.sf.net/)
+    FontForge (http://fontforge.sf.net/)
 
-     Use version `20060125' or newer (we recommend using at least
-     `20100501'); it must also be compiled with the `--enable-double'
+     Use version ‘20060125’ or newer (we recommend using at least
+     ‘20100501’); it must also be compiled with the ‘--enable-double’
      switch, else this can lead to inaccurate intersection calculations
      which end up with poorly-rendered glyphs in the output.
 
-   * GNU gettext (http://www.gnu.org/software/gettext/gettext.html)
+    GNU gettext (http://www.gnu.org/software/gettext/gettext.html)
 
-     Use version `0.17' or newer.
+     Use version ‘0.17’ or newer.
 
-   * GNU Make (http://www.gnu.org/software/make/)
+    GNU Make (http://www.gnu.org/software/make/)
 
-     Use version `3.78' or newer.
+     Use version ‘3.78’ or newer.
 
-   * MetaFont (http://metafont.tutorial.free.fr/)
+    MetaFont (http://metafont.tutorial.free.fr/)
 
-     The `mf-nowin', `mf', `mfw' or `mfont' binaries are usually
+     The ‘mf-nowin’, ‘mf’, ‘mfw’ or ‘mfont’ binaries are usually
      packaged along with TeX (http://www.latex-project.org/ftp.html).
 
-   * MetaPost (http://cm.bell-labs.com/who/hobby/MetaPost.html)
+    MetaPost (http://cm.bell-labs.com/who/hobby/MetaPost.html)
 
-     The `mpost' binary is also usually packaged with TeX
+     The ‘mpost’ binary is also usually packaged with TeX
      (http://www.latex-project.org/ftp.html).
 
-   * Perl (http://www.perl.org/)
+    Perl (http://www.perl.org/)
 
-   * Texinfo (http://www.gnu.org/software/texinfo/)
+    Texinfo (http://www.gnu.org/software/texinfo/)
 
-     Use version `4.11' or newer.
+     Use version ‘4.11’ or newer.
 
-   * Type 1 utilities (http://www.lcdf.org/~eddietwo/type/#t1utils)
+    Type 1 utilities (http://www.lcdf.org/~eddietwo/type/#t1utils)
 
-     Use version `1.33' or newer.
+     Use version ‘1.33’ or newer.
 
-   * Cyrillic fonts (https://www.ctan.org/pkg/cyrillic?lang=en)
+    Cyrillic fonts (https://www.ctan.org/pkg/cyrillic?lang=en)
 
-     Often packaged in repositories as `texlive-lang-cyrillic'.
+     Often packaged in repositories as ‘texlive-lang-cyrillic’.
 
-   * TeX Gyre `OTF' font packages.  As of LilyPond version `2.19.26',
+   • TeX Gyre ‘OTF’ font packages.  As of LilyPond version ‘2.19.26’,
      the previous default serif, san serif and monospace fonts now use
-     Tex Gyre's _Schola_, _Heros_ and _Cursor_ fonts respectively.
-     Also See *note Fonts: (lilypond-notation)Fonts.
+     Tex Gyre’s _Schola_, _Heros_ and _Cursor_ fonts respectively.  Also
+     See *note (lilypond-notation)Fonts::.
 
-     Some distributions do not always provide `OTF' font files in the
+     Some distributions do not always provide ‘OTF’ font files in the
      Tex Gyre packages from their repositories.  Use the command
-     `fc-list | grep texgyre' to list the fonts available to your system
-     and check that the appropriate `*.otf' files are reported.  If they
-     are not then download and manually extract the `OTF' files to
-     either your local  `~/.fonts/' directory or use the `configure'
-     command and the `--with-texgyre-dir=/path_to_otf_files/' option.
+     ‘fc-list | grep texgyre’ to list the fonts available to your system
+     and check that the appropriate ‘*.otf’ files are reported.  If they
+     are not then download and manually extract the ‘OTF’ files to
+     either your local ‘~/.fonts/’ directory or use the ‘configure’
+     command and the ‘--with-texgyre-dir=/path_to_otf_files/’ option.
 
      The following font families are required:
 
@@ -439,38 +420,37 @@ LilyPond.
      and Cursor
      (http://www.gust.org.pl/projects/e-foundry/tex-gyre/cursor).
 
-
 1.2.3 Requirements for building documentation
 ---------------------------------------------
 
 The entire set of documentation for the most current build of LilyPond
 is available online at
-`http://lilypond.org/doc/v2.19/Documentation/web/development', but you
-can also build them locally from the source code.  This process
-requires some additional tools and packages.
+<http://lilypond.org/doc/v2.19/Documentation/web/development>, but you
+can also build them locally from the source code.  This process requires
+some additional tools and packages.
 
           Note: If the instructions for one of the previously listed
-          Linux in the previous section (*note Requirements for
-          compiling LilyPond: (lilypond-contributor)Requirements for
-          compiling LilyPond.)  have been used, then the following can
-          be ignored as the software should already be installed.
+          Linux in the previous section (*note
+          (lilypond-contributor)Requirements for compiling LilyPond::)
+          have been used, then the following can be ignored as the
+          software should already be installed.
 
-   * Everything listed in *note Requirements for compiling LilyPond::
+    Everything listed in *note Requirements for compiling LilyPond::
 
-   * ImageMagick (http://www.imagemagick.org/)
+    ImageMagick (http://www.imagemagick.org/)
 
-   * Netpbm (http://netpbm.sourceforge.net/)
+    Netpbm (http://netpbm.sourceforge.net/)
 
-   * gzip (http://gzip.org/)
+    gzip (http://gzip.org/)
 
-   * rsync (http://rsync.samba.org/)
+    rsync (http://rsync.samba.org/)
 
-   * Texi2HTML (http://www.nongnu.org/texi2html/)
+    Texi2HTML (http://www.nongnu.org/texi2html/)
 
-     Use version `1.82'.  Later versions will not work.
+     Use version ‘1.82’.  Later versions will not work.
 
-     Download `texi2html 1.82' directly from:
-     `http://download.savannah.gnu.org/releases/texi2html/texi2html-1.82.tar.gz';
+     Download ‘texi2html 1.82’ directly from:
+     <http://download.savannah.gnu.org/releases/texi2html/texi2html-1.82.tar.gz>;
 
      Extract the files into an appropriate location and then run the
      commands;
@@ -480,11 +460,11 @@ requires some additional tools and packages.
           sudo make install
 
      Now verify that your operating system is able to see the correct
-     version of `texi2html'.
+     version of ‘texi2html’.
 
           texi2html --version
 
-   * Fonts required to build the documentation in addition to those
+    Fonts required to build the documentation in addition to those
      required to run LilyPond:
 
           gsfonts
@@ -496,13 +476,12 @@ requires some additional tools and packages.
           texlive-fonts-recommended
           ttf-xfree86-nonfree
 
-
-          Note: By default, when building LilyPond's documentation,
-          `pdfTeX' is be used.  However ligatures (fi, fl, ff etc.) may
+          Note: By default, when building LilyPond’s documentation,
+          ‘pdfTeX’ is be used.  However ligatures (fi, fl, ff etc.)  may
           not be printed in the PDF output.  In this case XeTeX can be
-          used instead.  Download and install the `texlive-xetex'
-          package. The scripts used to build the LilyPond documentation
-          will use `XeTex' instead of `pdfTex' to generate the PDF
+          used instead.  Download and install the ‘texlive-xetex’
+          package.  The scripts used to build the LilyPond documentation
+          will use ‘XeTex’ instead of ‘pdfTex’ to generate the PDF
           documents if it is available.  No additional configuration is
           required.
 
@@ -514,7 +493,7 @@ Downloading the Git repository
 
 In general, developers compile LilyPond from within a local Git
 repository.  Setting up a local Git repository is explained in *note
-Starting with Git: (lilypond-contributor)Starting with Git.
+(lilypond-contributor)Starting with Git::.
 
 Downloading a source tarball
 ----------------------------
@@ -522,7 +501,7 @@ Downloading a source tarball
 Packagers are encouraged to use source tarballs for compiling.
 
    The tarball for the latest stable release is available on the *note
-Source: (lilypond-web)Source. page.
+(lilypond-web)Source:: page.
 
 The latest source code snapshot
 (http://git.savannah.gnu.org/gitweb/?p=lilypond.git;a=snapshot) is also
@@ -531,14 +510,14 @@ available as a tarball from the GNU Savannah Git server.
 All tagged releases (including legacy stable versions and the most
 recent development release) are available here:
 
-     `http://download.linuxaudio.org/lilypond/source/'
+     <http://download.linuxaudio.org/lilypond/source/>
 
-   Download the tarball to your `~/src/' directory, or some other
+   Download the tarball to your ‘~/src/’ directory, or some other
 appropriate place.
 
           Note: Be careful where you unpack the tarball!  Any
-          subdirectories of the current folder named `lilypond/' or
-          `lilypond-X.Y.Z/' (where X.Y.Z is the release number) will be
+          subdirectories of the current folder named ‘lilypond/’ or
+          ‘lilypond-X.Y.Z/’ (where X.Y.Z is the release number) will be
           overwritten if there is a name clash with the tarball.
 
    Unpack the tarball with this command:
@@ -546,23 +525,23 @@ appropriate place.
      tar -xzf lilypond-X.Y.Z.tar.gz
 
    This creates a subdirectory within the current directory called
-`lilypond-X.Y.Z/'.  Once unpacked, the source files occupy about 40 MB
+‘lilypond-X.Y.Z/’.  Once unpacked, the source files occupy about 40 MB
 of disk space.
 
-   Windows users wanting to look at the source code may have to
-download and install the free-software 7zip archiver
-(http://www.7-zip.org) to extract the tarball.
+   Windows users wanting to look at the source code may have to download
+and install the free-software 7zip archiver (http://www.7-zip.org) to
+extract the tarball.
 
-1.4 Configuring `make'
+1.4 Configuring ‘make’
 ======================
 
-1.4.1 Running `./autogen.sh'
+1.4.1 Running ‘./autogen.sh’
 ----------------------------
 
 After you unpack the tarball (or download the Git repository), the
 contents of your top source directory should be similar to the current
 source tree listed at
-`http://git.sv.gnu.org/gitweb/?p=lilypond.git;a=tree'.
+<http://git.sv.gnu.org/gitweb/?p=lilypond.git;a=tree>.
 
    Next, you need to create the generated files; enter the following
 command from your top source directory:
@@ -570,7 +549,7 @@ command from your top source directory:
      ./autogen.sh --noconfigure
 
    This will generate a number of files and directories to aid
-configuration, such as `configure', `README.txt', etc.
+configuration, such as ‘configure’, ‘README.txt’, etc.
 
    Next, create the build directory with:
 
@@ -580,32 +559,32 @@ configuration, such as `configure', `README.txt', etc.
    We heavily recommend building lilypond inside a separate directory
 with this method.
 
-1.4.2 Running `../configure'
+1.4.2 Running ‘../configure’
 ----------------------------
 
 Configuration options
 .....................
 
-          Note: make sure that you are in the `build/' subdirectory of
+          Note: make sure that you are in the ‘build/’ subdirectory of
           your source tree.
 
-The `../configure' command (generated by `./autogen.sh') provides many
-options for configuring `make'.  To see them all, run:
+   The ‘../configure’ command (generated by ‘./autogen.sh’) provides
+many options for configuring ‘make’.  To see them all, run:
 
      ../configure --help
 
 Checking build dependencies
 ...........................
 
-          Note: make sure that you are in the `build/' subdirectory of
+          Note: make sure that you are in the ‘build/’ subdirectory of
           your source tree.
 
-When `../configure' is run without any arguments, it will check to make
-sure your system has everything required for compilation:
+   When ‘../configure’ is run without any arguments, it will check to
+make sure your system has everything required for compilation:
 
      ../configure
 
-   If any build dependency is missing, `../configure' will return with:
+   If any build dependency is missing, ‘../configure’ will return with:
 
      ERROR: Please install required programs:  FOO
 
@@ -617,7 +596,7 @@ only needed for building the documentation:
    If you intend to build the documentation locally, you will need to
 install or update these programs accordingly.
 
-          Note: `../configure' may fail to issue warnings for certain
+          Note: ‘../configure’ may fail to issue warnings for certain
           documentation build requirements that are not met.  If you
           experience problems when building the documentation, you may
           need to do a manual check of *note Requirements for building
@@ -626,95 +605,91 @@ install or update these programs accordingly.
 Configuring target directories
 ..............................
 
-          Note: make sure that you are in the `build/' subdirectory of
+          Note: make sure that you are in the ‘build/’ subdirectory of
           your source tree.
 
-If you intend to use your local build to install a local copy of the
-program, you will probably want to configure the installation
-directory.  Here are the relevant lines taken from the output of
-`../configure --help':
+   If you intend to use your local build to install a local copy of the
+program, you will probably want to configure the installation directory.
+Here are the relevant lines taken from the output of
+‘../configure --help’:
 
-     By default, ``make install'' will install all the files in
-     `/usr/local/bin', `/usr/local/lib' etc.  You can specify an
-     installation prefix other than `/usr/local' using ``--prefix'',
-     for instance ``--prefix=$HOME''.
+     By default, ‘‘make install’’ will install all the files in
+     ‘/usr/local/bin’, ‘/usr/local/lib’ etc.  You can specify an
+     installation prefix other than ‘/usr/local’ using ‘‘--prefix’’, for
+     instance ‘‘--prefix=$HOME’’.
 
-   A typical installation prefix is `$HOME/usr':
+   A typical installation prefix is ‘$HOME/usr’:
 
      ../configure --prefix=$HOME/usr
 
    Note that if you plan to install a local build on a system where you
 do not have root privileges, you will need to do something like this
-anyway--`make install' will only succeed if the installation prefix
-points to a directory where you have write permission (such as your
-home directory).  The installation directory will be automatically
-created if necessary.
+anyway—‘make install’ will only succeed if the installation prefix
+points to a directory where you have write permission (such as your home
+directory).  The installation directory will be automatically created if
+necessary.
 
-   The location of the `lilypond' command installed by this process
-will be `PREFIX/bin/lilypond'; you may want to add `PREFIX/bin/' to
-your `$PATH' if it is not already included.
+   The location of the ‘lilypond’ command installed by this process will
+be ‘PREFIX/bin/lilypond’; you may want to add ‘PREFIX/bin/’ to your
+‘$PATH’ if it is not already included.
 
    It is also possible to specify separate installation directories for
 different types of program files.  See the full output of
-`../configure --help' for more information.
+‘../configure --help’ for more information.
 
    If you encounter any problems, please see *note Problems::.
 
 1.5 Compiling LilyPond
 ======================
 
-1.5.1 Using `make'
+1.5.1 Using ‘make’
 ------------------
 
-          Note: make sure that you are in the `build/' subdirectory of
+          Note: make sure that you are in the ‘build/’ subdirectory of
           your source tree.
 
-LilyPond is compiled with the `make' command.  Assuming `make' is
+   LilyPond is compiled with the ‘make’ command.  Assuming ‘make’ is
 configured properly, you can simply run:
 
      make
 
-   `make' is short for `make all'.  To view a list of `make' targets,
+   ‘make’ is short for ‘make all’.  To view a list of ‘make’ targets,
 run:
 
      make help
 
-   TODO: Describe what `make' actually does.
-
+   TODO: Describe what ‘make’ actually does.
 
 
 See also
 ........
 
-
-
-   *note Generating documentation:: provides more info on the `make'
+   *note Generating documentation:: provides more info on the ‘make’
 targets used to build the LilyPond documentation.
 
-1.5.2 Saving time with the `-j' option
+1.5.2 Saving time with the ‘-j’ option
 --------------------------------------
 
-If your system has multiple CPUs, you can speed up compilation by
-adding `-jX' to the `make' command, where `X' is one more than the
-number of cores you have.  For example, a typical Core2Duo machine
-would use:
+If your system has multiple CPUs, you can speed up compilation by adding
+‘-jX’ to the ‘make’ command, where ‘X’ is one more than the number of
+cores you have.  For example, a typical Core2Duo machine would use:
 
      make -j3
 
-   If you get errors using the `-j' option, and `make' succeeds without
-it, try lowering the `X' value.
+   If you get errors using the ‘-j’ option, and ‘make’ succeeds without
+it, try lowering the ‘X’ value.
 
-   Because multiple jobs run in parallel when `-j' is used, it can be
+   Because multiple jobs run in parallel when ‘-j’ is used, it can be
 difficult to determine the source of an error when one occurs.  In that
-case, running `make' without the `-j' is advised.
+case, running ‘make’ without the ‘-j’ is advised.
 
 1.5.3 Compiling for multiple platforms
 --------------------------------------
 
 If you want to build multiple versions of LilyPond with different
-configuration settings, you can use the `--enable-config=CONF' option
-of `configure'.  You should use `make conf=CONF' to generate the output
-in `out-CONF'.  For example, suppose you want to build with and without
+configuration settings, you can use the ‘--enable-config=CONF’ option of
+‘configure’.  You should use ‘make conf=CONF’ to generate the output in
+‘out-CONF’.  For example, suppose you want to build with and without
 profiling, then use the following for the normal build
 
      ./configure --prefix=$HOME/usr/ --enable-checking
@@ -726,8 +701,8 @@ profiling, then use the following for the normal build
        --enable-config=prof --disable-checking
      make conf=prof
 
-   If you wish to install a copy of the build with profiling, don't
-forget to use `conf=CONF' when issuing `make install':
+   If you wish to install a copy of the build with profiling, dont
+forget to use ‘conf=CONF’ when issuing ‘make install’:
 
      make conf=prof install
 
@@ -735,15 +710,13 @@ forget to use `conf=CONF' when issuing `make install':
 See also
 ........
 
-
-
    *note Installing LilyPond from a local build::
 
-1.5.4 Useful `make' variables
+1.5.4 Useful ‘make’ variables
 -----------------------------
 
-If a less verbose build output if desired, the variable `QUIET_BUILD'
-may be set to `1' on `make' command line, or in `local.make' at top of
+If a less verbose build output if desired, the variable ‘QUIET_BUILD’
+may be set to ‘1’ on ‘make’ command line, or in ‘local.make’ at top of
 the build tree.
 
 1.6 Post-compilation options
@@ -752,17 +725,17 @@ the build tree.
 1.6.1 Installing LilyPond from a local build
 --------------------------------------------
 
-If you configured `make' to install your local build in a directory
+If you configured ‘make’ to install your local build in a directory
 where you normally have write permission (such as your home directory),
-and you have compiled LilyPond by running `make', you can install the
+and you have compiled LilyPond by running ‘make’, you can install the
 program in your target directory by running:
 
      make install
 
    If instead, your installation directory is not one that you can
-normally write to (such as the default `/usr/local/', which typically
-is only writeable by the superuser), you will need to temporarily
-become the superuser when running `make install':
+normally write to (such as the default ‘/usr/local/’, which typically is
+only writeable by the superuser), you will need to temporarily become
+the superuser when running ‘make install’:
 
      sudo make install
 
@@ -770,23 +743,23 @@ or...
 
      su -c 'make install'
 
-   If you don't have superuser privileges, then you need to configure
+   If you dont have superuser privileges, then you need to configure
 the installation directory to one that you can write to, and then
 re-install.  See *note Configuring target directories::.
 
 1.6.2 Generating documentation
 ------------------------------
 
-Documentation editor's edit/compile cycle
+Documentation editors edit/compile cycle
 .........................................
 
-   * Initial documentation build:
+    Initial documentation build:
 
           make [-jX]
           make [-jX CPU_COUNT=X] doc          _## can take an hour or more_
           make [-jX CPU_COUNT=X] doc-stage-1  _## to build only PDF documentation_
 
-   * Edit/compile cycle:
+    Edit/compile cycle:
 
           _## edit source files, then..._
 
@@ -795,21 +768,20 @@ Documentation editor's edit/compile cycle
                                       _##   for finding Texinfo errors._
           make [-jX CPU_COUNT=X] doc  _## usually faster than initial build._
 
-   * Reset:
+    Reset:
 
      It is generally possible to remove the compiled documentation from
-     your system with `make doc-clean', but this method is not 100%
+     your system with ‘make doc-clean’, but this method is not 100%
      guaranteed.  Instead, if you want to be sure you have a clean
-     system, we recommend that you delete your `build/' directory, and
+     system, we recommend that you delete your ‘build/’ directory, and
      begin compiling from scratch.  Since the documentation compile
-     takes much longer than the non-documentation compile, this does
-     not increase the overall time by a great deal.
-
+     takes much longer than the non-documentation compile, this does not
+     increase the overall time by a great deal.
 
 Building documentation
 ......................
 
-After a successful compile (using `make'), the documentation can be
+After a successful compile (using ‘make’), the documentation can be
 built by issuing:
 
      make doc
@@ -818,32 +790,31 @@ built by issuing:
 
      make doc-stage-1
 
-          Note: The first time you run `make doc', the process can
+          Note: The first time you run ‘make doc’, the process can
           easily take an hour or more with not much output on the
           command line.
 
-   After this initial build, `make doc' only makes changes to the
+   After this initial build, ‘make doc’ only makes changes to the
 documentation where needed, so it may only take a minute or two to test
 changes if the documentation is already built.
 
-   If `make doc' succeeds, the HTML documentation tree is available in
-`out-www/offline-root/', and can be browsed locally.  Various portions
-of the documentation can be found by looking in `out/' and `out-www'
+   If ‘make doc’ succeeds, the HTML documentation tree is available in
+‘out-www/offline-root/’, and can be browsed locally.  Various portions
+of the documentation can be found by looking in ‘out/’ and ‘out-www’
 subdirectories in other places in the source tree, but these are only
 _portions_ of the docs.  Please do not complain about anything which is
 broken in those places; the only complete set of documentation is in
-`out-www/offline-root/' from the top of the source tree.
+‘out-www/offline-root/’ from the top of the source tree.
 
-   `make doc' sends the output from most of the compilation to
-logfiles.  If the build fails for any reason, it should prompt you with
-the name of a logfile which will provide information to help you work
-out why the build failed.  These logfiles are not deleted with
-`make doc-clean'.  To remove all the logfiles generated by the
-compilation process, use:
+   ‘make doc’ sends the output from most of the compilation to logfiles.
+If the build fails for any reason, it should prompt you with the name of
+a logfile which will provide information to help you work out why the
+build failed.  These logfiles are not deleted with ‘make doc-clean’.  To
+remove all the logfiles generated by the compilation process, use:
 
      make log-clean
 
-   `make doc' compiles the documents for all languages.  To save some
+   ‘make doc’ compiles the documents for all languages.  To save some
 compile time, the English language documents can be compiled on their
 own with:
 
@@ -863,8 +834,8 @@ separately by issuing:
      make info
 
 An issue when switching branches between master and translation is the
-appearance/disappearance of translated versions of some manuals.  If
-you see such a warning from make:
+appearance/disappearance of translated versions of some manuals.  If you
+see such a warning from make:
 
      No rule to make target `X', needed by `Y'
 
@@ -873,8 +844,8 @@ Your best bet is to delete the file Y.dep and to try again.
 Building a single document
 ..........................
 
-It's possible to build a single document.  For example, to rebuild only
-`contributor.pdf', do the following:
+Its possible to build a single document.  For example, to rebuild only
+‘contributor.pdf’, do the following:
 
      cd build/
      cd Documentation/
@@ -883,30 +854,29 @@ It's possible to build a single document.  For example, to rebuild only
 
    If you are only working on a single document, test-building it in
 this way can give substantial time savings - recreating
-`contributor.pdf', for example, takes a matter of seconds.
+‘contributor.pdf’, for example, takes a matter of seconds.
 
-Saving time with `CPU_COUNT'
+Saving time with ‘CPU_COUNT’
 ............................
 
 The most time consuming task for building the documentation is running
 LilyPond to build images of music, and there cannot be several
-simultaneously running `lilypond-book' instances, so the `-j' `make'
-option does not significantly speed up the build process.  To help
-speed it up, the makefile variable `CPU_COUNT' may be set in
-`local.make' or on the command line to the number of `.ly' files that
-LilyPond should process simultaneously, e.g. on a bi-processor or dual
-core machine:
+simultaneously running ‘lilypond-book’ instances, so the ‘-j’ ‘make’
+option does not significantly speed up the build process.  To help speed
+it up, the makefile variable ‘CPU_COUNT’ may be set in ‘local.make’ or
+on the command line to the number of ‘.ly’ files that LilyPond should
+process simultaneously, e.g.  on a bi-processor or dual core machine:
 
      make -j3 CPU_COUNT=3 doc
 
-The recommended value of `CPU_COUNT' is one plus the number of cores or
-processors, but it is advisable to set it to a smaller value unless
-your system has enough RAM to run that many simultaneous LilyPond
-instances.  Also, values for the `-j' option that pose problems with
-`make' are less likely to pose problems with `make doc' (this applies
-to both `-j' and `CPU_COUNT').  For example, with a quad-core processor,
-it is possible for `make -j5 CPU_COUNT=5 doc' to work consistently even
-if `make -j5' rarely succeeds.
+The recommended value of ‘CPU_COUNT’ is one plus the number of cores or
+processors, but it is advisable to set it to a smaller value unless your
+system has enough RAM to run that many simultaneous LilyPond instances.
+Also, values for the ‘-j’ option that pose problems with ‘make’ are less
+likely to pose problems with ‘make doc’ (this applies to both ‘-j’ and
+‘CPU_COUNT’).  For example, with a quad-core processor, it is possible
+for ‘make -j5 CPU_COUNT=5 doc’ to work consistently even if ‘make -j5’
+rarely succeeds.
 
 AJAX search
 ...........
@@ -938,19 +908,19 @@ installation of Info documentation are printed on standard output.
 
      make install-info
 
-Note that to get the images in Info documentation, `install-doc' target
+Note that to get the images in Info documentation, ‘install-doc’ target
 creates symbolic links to HTML and PDF installed documentation tree in
-`PREFIX/share/info', in order to save disk space, whereas
-`install-info' copies images in `PREFIX/share/info' subdirectories.
+‘PREFIX/share/info’, in order to save disk space, whereas ‘install-info’
+copies images in ‘PREFIX/share/info’ subdirectories.
 
    It is possible to build a documentation tree in
-`out-www/online-root/', with special processing, so it can be used on a
+‘out-www/online-root/’, with special processing, so it can be used on a
 website with content negotiation for automatic language selection; this
 can be achieved by issuing
 
      make WEB_TARGETS=online doc
 
-and both `offline' and `online' targets can be generated by issuing
+and both ‘offline’ and ‘online’ targets can be generated by issuing
 
      make WEB_TARGETS="offline online" doc
 
@@ -961,10 +931,10 @@ available with
      make help
 
 from every directory in the build tree.  Most targets for documentation
-maintenance are available from `Documentation/'; for more information,
-see *note Documentation work: (lilypond-contributor)Documentation work.
+maintenance are available from ‘Documentation/’; for more information,
+see *note (lilypond-contributor)Documentation work::.
 
-   The makefile variable `QUIET_BUILD' may be set to `1' for a less
+   The makefile variable ‘QUIET_BUILD’ may be set to ‘1’ for a less
 verbose build output, just like for building the programs.
 
 Building documentation without compiling
@@ -980,14 +950,14 @@ binary, if LilyPond is already installed on your system.
      make -C scripts && make -C python
      nice make LILYPOND_EXTERNAL_BINARY=/path/to/bin/lilypond doc
 
-   Please note that this may break sometimes - for example, if a new
+   Please note that this may break sometimes  for example, if a new
 feature is added with a test file in input/regression, even the latest
 development release of LilyPond will fail to build the docs.
 
-   You may build the manual without building all the `input/*' stuff
-(i.e. mostly regression tests): change directory, for example to
-`Documentation/', issue `make doc', which will build documentation in a
-subdirectory `out-www' from the source files in current directory.  In
+   You may build the manual without building all the ‘input/*’ stuff
+(i.e.  mostly regression tests): change directory, for example to
+‘Documentation/’, issue ‘make doc’, which will build documentation in a
+subdirectory ‘out-www’ from the source files in current directory.  In
 this case, if you also want to browse the documentation in its
 post-processed form, change back to top directory and issue
 
@@ -997,7 +967,7 @@ post-processed form, change back to top directory and issue
 Known issues and warnings
 .........................
 
-You may also need to create a script for `pngtopnm' and `pnmtopng'.  On
+You may also need to create a script for ‘pngtopnm’ and ‘pnmtopng’.  On
 GNU/Linux, I use this:
 
 export LD_LIBRARY_PATH=/usr/lib
@@ -1028,20 +998,20 @@ make test
 been verified.
 
    More information on the regression test suite is found at *note
-Regression tests: (lilypond-contributor)Regression tests.
+(lilypond-contributor)Regression tests::.
 
 1.7 Problems
 ============
 
-For help and questions use <lilypond-user@gnu.org>.  Send bug reports
-to <bug-lilypond@gnu.org>.
+For help and questions use <lilypond-user@gnu.org>.  Send bug reports to
+<bug-lilypond@gnu.org>.
 
    Bugs that are not fault of LilyPond are documented here.
 
 Compiling on MacOS X
 --------------------
 
-Here are special instructions for compiling under MacOS X.  These
+Here are special instructions for compiling under MacOS X. These
 instructions assume that dependencies are installed using MacPorts.
 (http://www.macports.org/) The instructions have been tested using OS X
 10.5 (Leopard).
@@ -1049,13 +1019,13 @@ instructions assume that dependencies are installed using MacPorts.
    First, install the relevant dependencies using MacPorts.
 
    Next, add the following to your relevant shell initialization files.
-This is `~/.profile' by default.  You should create this file if it
-does not exist.
+This is ‘~/.profile’ by default.  You should create this file if it does
+not exist.
 
      export PATH=/opt/local/bin:/opt/local/sbin:$PATH
      export DYLD_FALLBACK_LIBRARY_PATH=/opt/local/lib:$DYLD_FALLBACK_LIBRARY_PATH
 
-   Now you must edit the generated `config.make' file.  Change
+   Now you must edit the generated ‘config.make’ file.  Change
 
      FLEXLEXER_FILE = /usr/include/FlexLexer.h
 
@@ -1064,9 +1034,9 @@ to:
      FLEXLEXER_FILE = /opt/local/include/FlexLexer.h
 
    At this point, you should verify that you have the appropriate fonts
-installed with your ghostscript installation.  Check `ls
-/opt/local/share/ghostscript/fonts' for: 'c0590*' files (.pfb, .pfb and
-.afm).  If you don't have them, run the following commands to grab them
+installed with your ghostscript installation.  Check ls
+/opt/local/share/ghostscript/fonts’ for: ’c0590*’ files (.pfb, .pfb and
+.afm).  If you dont have them, run the following commands to grab them
 from the ghostscript SVN server and install them in the appropriate
 location:
 
@@ -1074,7 +1044,7 @@ location:
      sudo mv urw-fonts-1.0.7pre44/* /opt/local/share/ghostscript/fonts/
      rm -rf urw-fonts-1.07pre44
 
-   Now run the `./configure' script.  To avoid complications with
+   Now run the ‘./configure’ script.  To avoid complications with
 automatic font detection, add
 
      --with-fonts-dir=/opt/local/share/ghostscript/fonts
@@ -1084,8 +1054,8 @@ Solaris
 
 Solaris7, ./configure
 
-   `./configure' needs a POSIX compliant shell.  On Solaris7, `/bin/sh'
-is not yet POSIX compliant, but `/bin/ksh' or bash is.  Run configure
+   ‘./configure’ needs a POSIX compliant shell.  On Solaris7, ‘/bin/sh’
+is not yet POSIX compliant, but ‘/bin/ksh’ or bash is.  Run configure
 like
 
      CONFIG_SHELL=/bin/ksh ksh -c ./configure
@@ -1097,11 +1067,11 @@ or
 FreeBSD
 -------
 
-To use system fonts, dejaview must be installed.  With the default
-port, the fonts are installed in `usr/X11R6/lib/X11/fonts/dejavu'.
+To use system fonts, dejaview must be installed.  With the default port,
+the fonts are installed in ‘usr/X11R6/lib/X11/fonts/dejavu’.
 
-   Open the file `$LILYPONDBASE/usr/etc/fonts/local.conf' and add the
-following line just after the `<fontconfig>' line.  (Adjust as necessary
+   Open the file ‘$LILYPONDBASE/usr/etc/fonts/local.conf’ and add the
+following line just after the ‘<fontconfig>’ line.  (Adjust as necessary
 for your hierarchy.)
 
      <dir>/usr/X11R6/lib/X11/fonts</dir>
@@ -1112,7 +1082,7 @@ International fonts
 On Mac OS X, all fonts are installed by default.  However, finding all
 system fonts requires a bit of configuration; see this post
 (http://lists.gnu.org/archive/html/lilypond-user/2007-03/msg00472.html)
-on the `lilypond-user' mailing list.
+on the ‘lilypond-user’ mailing list.
 
    On Linux, international fonts are installed by different means on
 every distribution.  We cannot list the exact commands or packages that
@@ -1133,42 +1103,42 @@ Debian GNU/Linux
 Using lilypond python libraries
 -------------------------------
 
-If you want to use lilypond's python libraries (either running certain
+If you want to use lilyponds python libraries (either running certain
 build scripts manually, or using them in other programs), set
-`PYTHONPATH' to `python/out' in your build directory, or
-`.../usr/lib/lilypond/current/python' in the installation directory
+‘PYTHONPATH’ to ‘python/out’ in your build directory, or
+‘.../usr/lib/lilypond/current/python’ in the installation directory
 structure.
 
 1.8 Concurrent stable and development versions
 ==============================================
 
-It can be useful to have both the stable and the development versions
-of Lilypond available at once.  One way to do this on GNU/Linux is to
+It can be useful to have both the stable and the development versions of
+LilyPond available at once.  One way to do this on GNU/Linux is to
 install the stable version using the precompiled binary, and run the
-development version from the source tree.  After running `make all'
-from the top directory of the Lilypond source files, there will be a
-binary called `lilypond' in the `out' directory:
+development version from the source tree.  After running ‘make all’ from
+the top directory of the LilyPond source files, there will be a binary
+called ‘lilypond’ in the ‘out’ directory:
 
      <PATH TO>/lilypond/out/bin/lilypond
 
-   This binary can be run without actually doing the `make install'
+   This binary can be run without actually doing the ‘make install’
 command.  The advantage to this is that you can have all of the latest
-changes available after pulling from git and running `make all',
-without having to uninstall the old version and reinstall the new.
+changes available after pulling from git and running ‘make all’, without
+having to uninstall the old version and reinstall the new.
 
-   So, to use the stable version, install it as usual and use the
-normal commands:
+   So, to use the stable version, install it as usual and use the normal
+commands:
 
      lilypond foobar.ly
 
    To use the development version, create a link to the binary in the
 source tree by saving the following line in a file somewhere in your
-`$PATH':
+‘$PATH’:
 
      exec <PATH TO>/lilypond/out/bin/lilypond "$@"
 
-   Save it as `Lilypond' (with a capital L to distinguish it from the
-stable `lilypond'), and make it executable:
+   Save it as ‘Lilypond’ (with a capital L to distinguish it from the
+stable ‘lilypond’), and make it executable:
 
      chmod +x Lilypond
 
@@ -1189,16 +1159,15 @@ by us.  Hopefully this will change in the future.
 Version-specific texinfo macros
 -------------------------------
 
-   * made with `scripts/build/create-version-itexi.py' and
-     `scripts/build/create-weblinks-itexi.py'
+   • made with ‘scripts/build/create-version-itexi.py’ and
+     ‘scripts/build/create-weblinks-itexi.py’
 
-   * used extensively in the `WEBSITE_ONLY_BUILD' version of the
-     website (made with `website.make', used on lilypond.org)
+   • used extensively in the ‘WEBSITE_ONLY_BUILD’ version of the website
+     (made with ‘website.make’, used on lilypond.org)
 
-   * not (?) used in the main docs?
+   • not (?)  used in the main docs?
 
-   * the numbers in VERSION file: MINOR_VERSION should be 1 more than
+    the numbers in VERSION file: MINOR_VERSION should be 1 more than
      the last release, VERSION_DEVEL should be the last *online*
      release.  Yes, VERSION_DEVEL is less than VERSION.
 
-
index 33fc4d64f84ac48b87889e36a38cf6752a46af39..0aac6fc370a468f1bca907d369cd908027c986c9 100644 (file)
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -1,61 +1,71 @@
 New features in 2.20 since 2.18
 *******************************
 
-   * Blocks introduced with `\header' can be stored in variables and
+   • Slurs and phrasing slurs may now be started from individual notes
+     in a chord.  Several simultanous slurs per ‘Voice’ need to be
+     distinguished by ‘spanner-id’ setting.
+
+   • The music and grob property ‘spanner-id’ for distinguishing
+     simultaneous slurs and phrasing slurs has been changed from a
+     string to a ‘key’, a non-negative integer or symbol.
+
+   • There is a new command ‘\=’ for specifying the ‘spanner-id’ for
+     simultaneous slurs and phrasing slurs.
+          \fixed c' {
+            <c~ f\=1( g\=2( >2 <c e\=1) a\=2) >
+          }
+          image of music
+
+   • Blocks introduced with ‘\header’ can be stored in variables and
      used as arguments to music and scheme functions and as the body of
-     `#{...#}' constructs.  They are represented as a Guile module.
+     ‘#{...#}’ constructs.  They are represented as a Guile module.
 
-     While `\book', `\bookpart', `\score', `\with', `\layout', `\midi',
-     `\paper' blocks can be passed around in similar manner, they are
+     While ‘\book’, ‘\bookpart’, ‘\score’, ‘\with’, ‘\layout’, ‘\midi’,
+     ‘\paper’ blocks can be passed around in similar manner, they are
      represented by different data types.
 
-   * Dot-separated symbol lists like `FretBoard.stencil' were already
+   • Dot-separated symbol lists like ‘FretBoard.stencil’ were already
      supported as of version 2.18.  They may now also contain unsigned
      integers, and may alternatively be separated by commata.  This
      allows usage such as
-
           { \time 2,2,1 5/8  g'8 8 8 8 8 }
-           [image of music]
-
+          image of music
 
      and
-     \tagGroup violin,oboe,bassoon
+          \tagGroup violin,oboe,bassoon
 
-   * Such lists may also be used in expressions for assignments, sets,
+    Such lists may also be used in expressions for assignments, sets,
      and overrides.  This allows usage such as
-
           { \unset Timing.beamExceptions
             \set Timing.beatStructure = 1,2,1
             g'8 8 8 8 8 8 8 8 }
-           [image of music]
-
+          image of music
 
-   * Association list elements could previously be assigned values
+    Association list elements could previously be assigned values
      individually (for example, paper variables like
-     `system-system-spacing.basic-distance').  They may now be also
+     ‘system-system-spacing.basic-distance’).  They may now be also
      referenced in this manner, as with
-     \paper {
-       \void \displayScheme \system-system-spacing.basic-distance
-     }
+          \paper {
+            \void \displayScheme \system-system-spacing.basic-distance
+          }
 
      In combination with the previously mentioned changes, this allows
-     setting and referencing pseudovariables like `violin.1'.
+     setting and referencing pseudovariables like ‘violin.1’.
 
-   * LilyPond source files may now be embedded inside the generated PDF
-     files.  This experimental feature is disabled by default and may
-     be regarded as unsafe, as PDF documents with hidden content tend
-     to present a security risk.  Please note that not all PDF viewers
-     have the ability to handle embedded documents (if not, the PDF
-     output will appear normally and source files will remain
-     invisible).  This feature only works with the PDF backend.
+    LilyPond source files may now be embedded inside the generated PDF
+     files.  This experimental feature is disabled by default and may be
+     regarded as unsafe, as PDF documents with hidden content tend to
+     present a security risk.  Please note that not all PDF viewers have
+     the ability to handle embedded documents (if not, the PDF output
+     will appear normally and source files will remain invisible).  This
+     feature only works with the PDF backend.
 
-   * French note names are now defined specifically instead of being
+    French note names are now defined specifically instead of being
      aliased to Italian note names: in addition to the generic
-     Italian-derived syntax, the D pitch may be entered as `ré'.
-     Double sharps may also be entered using the `-x' suffix.
-
-   * Additional bass strings (for lute tablature) are supported.
+     Italian-derived syntax, the D pitch may be entered as ‘ré’.  Double
+     sharps may also be entered using the ‘-x’ suffix.
 
+   • Additional bass strings (for lute tablature) are supported.
           m = { f'4 d' a f d a, g, fis, e, d, c,  \bar "|." }
 
           \score {
@@ -73,12 +83,10 @@ New features in 2.20 since 2.18
               }
             }
           }
-           [image of music]
-
-
-   * The markup-list-command `\table' is now available.  Each column
-     may be aligned differently.
+          image of music
 
+   • The markup-list-command ‘\table’ is now available.  Each column may
+     be aligned differently.
           \markuplist {
               \override #'(padding . 2)
               \table
@@ -91,13 +99,11 @@ New features in 2.20 since 2.18
                   thousand "1000" one "1.0"
                 }
           }
-           [image of music]
+          image of music
 
-
-   * A new markup-command, `\with-dimensions-from', makes
-     `\with-dimensions' easier to use by taking the new dimensions from
+   • A new markup-command, ‘\with-dimensions-from’, makes
+     ‘\with-dimensions’ easier to use by taking the new dimensions from
      a markup object, given as first argument.
-
           \markup {
             \pattern #5 #Y #0 "x"
             \pattern #5 #Y #0 \with-dimensions-from "x" "f"
@@ -109,19 +115,17 @@ New features in 2.20 since 2.18
               \pattern #5 #X #0 \with-dimensions-from "n" "!"
             }
           }
-           [image of music]
+          image of music
 
-
-   * A new page breaking function `ly:one-line-auto-height-breaking'
-     places a whole score on a single line and changes the page width
-     to match, just like `ly:one-line-breaking'.  The difference is that
-     it also automatically modifies the height of the page to fit the
+   • A new page breaking function ‘ly:one-line-auto-height-breaking’
+     places a whole score on a single line and changes the page width to
+     match, just like ‘ly:one-line-breaking’.  The difference is that it
+     also automatically modifies the height of the page to fit the
      height of the music.
 
-   * Markup-command `\draw-squiggle-line' is now available.
-     Customizing is possible with overrides of `thickness',
-     `angularity', `height' and `orientation'
-
+   • Markup-command ‘\draw-squiggle-line’ is now available.  Customizing
+     is possible with overrides of ‘thickness’, ‘angularity’, ‘height’
+     and ‘orientation’
           \markup
             \overlay {
               \draw-squiggle-line #0.5 #'(3 . 3) ##t
@@ -140,16 +144,14 @@ New features in 2.20 since 2.18
               \override #'(orientation . -1)
               \draw-squiggle-line #0.2 #'(-3 . 3) ##t
             }
-           [image of music]
-
+          image of music
 
-   * A new command, `\RemoveAllEmptyStaves', has been made available,
-     which acts exactly like `\RemoveEmptyStaves', except for also
+   • A new command, ‘\RemoveAllEmptyStaves’, has been made available,
+     which acts exactly like ‘\RemoveEmptyStaves’, except for also
      removing empty staves on the first system in a score.
 
-   * Markup-commands `\undertie' and `\overtie' are now available, as
-     well as the generic markup-command `\tie'.
-
+   • Markup-commands ‘\undertie’ and ‘\overtie’ are now available, as
+     well as the generic markup-command ‘\tie’.
           \markup {
             \undertie "undertied"
             \overtie "overtied"
@@ -160,11 +162,9 @@ New features in 2.20 since 2.18
           }
 
           { \voiceOne \m \voiceTwo \m }
-           [image of music]
-
-
-   * `TabStaff' is now able to print micro-tones for bendings etc.
+          image of music
 
+   • ‘TabStaff’ is now able to print micro-tones for bendings etc.
           \layout {
             \context {
               \Score
@@ -178,15 +178,14 @@ New features in 2.20 since 2.18
             \new Staff << \clef "G_8" \mus >>
             \new TabStaff \mus
           >>
-           [image of music]
-
+          image of music
 
-   * Two new styles of whiteout are now available.  The `outline' style
-     approximates the contours of a glyph's outline, and its shape is
+   • Two new styles of whiteout are now available.  The ‘outline’ style
+     approximates the contours of a glyphs outline, and its shape is
      produced from multiple displaced copies of the glyph.  The
-     `rounded-box' style produces a rounded rectangle shape.  For all
-     three styles, including the default `box' style, the whiteout
-     shape's `thickness', as a multiple of staff-line thickness, can be
+     ‘rounded-box’ style produces a rounded rectangle shape.  For all
+     three styles, including the default ‘box’ style, the whiteout
+     shape’s ‘thickness’, as a multiple of staff-line thickness, can be
      customized.
 
           \markup {
@@ -214,12 +213,10 @@ New features in 2.20 since 2.18
             \override Staff.Clef.whiteout = 3
             g'1
           }
-           [image of music]
-
-
-   * All of `\override', `\revert', `\set', and `\unset' now work with
-     the `\once' prefix for making one-time settings.
+          image of music
 
+   • All of ‘\override’, ‘\revert’, ‘\set’, and ‘\unset’ now work with
+     the ‘\once’ prefix for making one-time settings.
           \relative {
             c'4 d
             \override NoteHead.color = #red
@@ -231,23 +228,22 @@ New features in 2.20 since 2.18
             \revert NoteHead.color
             f2 c |
           }
-           [image of music]
-
-
-   * When outputting MIDI, LilyPond will now store the `title' defined
-     in a score's `\header' block (or, if there is no such definition
-     on the `\score' level, the first such definition found in a
-     `\header' block of the score's enclosing `\bookpart', `\book', or
-     top-level scope) as the name of the MIDI sequence in the MIDI
-     file.  Optionally, the name of the MIDI sequence can be overridden
-     using the new `midititle' `\header' field independently of `title'
-     (for example, in case `title' contains markup code which does not
-     render as plain text in a satisfactory way automatically).
-
-   * Music (and scheme and void) functions and markup commands that
-     just supply the final parameters to a chain of overrides, music
-     function and markup command calls can now be defined in the form
-     of just writing the expression cut short with `\etc'.
+          image of music
+
+   • When outputting MIDI, LilyPond will now store the ‘title’ defined
+     in a score’s ‘\header’ block (or, if there is no such definition on
+     the ‘\score’ level, the first such definition found in a ‘\header’
+     block of the score’s enclosing ‘\bookpart’, ‘\book’, or top-level
+     scope) as the name of the MIDI sequence in the MIDI file.
+     Optionally, the name of the MIDI sequence can be overridden using
+     the new ‘midititle’ ‘\header’ field independently of ‘title’ (for
+     example, in case ‘title’ contains markup code which does not render
+     as plain text in a satisfactory way automatically).
+
+   • Music (and scheme and void) functions and markup commands that just
+     supply the final parameters to a chain of overrides, music function
+     and markup command calls can now be defined in the form of just
+     writing the expression cut short with ‘\etc’.
 
           bold-red-markup = \markup \bold \with-color #red \etc
           highlight = \tweak font-size 3 \tweak color #red \etc
@@ -256,69 +252,63 @@ New features in 2.20 since 2.18
           \markuplist \column-lines \bold-red { One Two }
 
           { c' \highlight d' e'2-\highlight -! }
-           [image of music]
-
-
-   * LilyPond functions defined with `define-music-function',
-     `define-event-function', `define-scheme-function' and
-     `define-void-function' can now be directly called from Scheme as
-     if they were genuine Scheme procedures.  Argument checking and
-     matching will still be performed in the same manner as when
-     calling the function through LilyPond input.  This includes the
-     insertion of defaults for optional arguments not matching their
-     predicates.  Instead of using `\default' in the actual argument
-     list for explicitly skipping a sequence of optional arguments,
-     `*unspecified*' can be employed.
-
-   * Current input location and parser are now stored in GUILE fluids
-     and can be referenced via the function calls `(*location*)' and
-     `(*parser*)'.  Consequently, a lot of functions previously taking
-     an explicit `parser' argument no longer do so.
-
-     Functions defined with `define-music-function',
-     `define-event-function', `define-scheme-function' and
-     `define-void-function' no longer use `parser' and `location'
+          image of music
+
+   • LilyPond functions defined with ‘define-music-function’,
+     ‘define-event-function’, ‘define-scheme-function’ and
+     ‘define-void-function’ can now be directly called from Scheme as if
+     they were genuine Scheme procedures.  Argument checking and
+     matching will still be performed in the same manner as when calling
+     the function through LilyPond input.  This includes the insertion
+     of defaults for optional arguments not matching their predicates.
+     Instead of using ‘\default’ in the actual argument list for
+     explicitly skipping a sequence of optional arguments,
+     ‘*unspecified*’ can be employed.
+
+   • Current input location and parser are now stored in GUILE fluids
+     and can be referenced via the function calls ‘(*location*)’ and
+     ‘(*parser*)’.  Consequently, a lot of functions previously taking
+     an explicit ‘parser’ argument no longer do so.
+
+     Functions defined with ‘define-music-function’,
+     ‘define-event-function’, ‘define-scheme-function’ and
+     ‘define-void-function’ no longer use ‘parser’ and ‘location’
      arguments.
 
      With those particular definitions, LilyPond will try to recognize
-     legacy use of `parser' and `location' arguments, providing
+     legacy use of ‘parser’ and ‘location’ arguments, providing
      backwards-compatible semantics for some time.
 
-   * In the "english" notename language, the long notenames for pitches
+    In the "english" notename language, the long notenames for pitches
      with accidentals now contain a hyphen for better readability.  You
      now have to write
-     \key a-flat \major
+          \key a-flat \major
      instead of the previous
-     \key aflat \major
-
-     Double accidentals do not get another hyphen, so the Dutch `cisis'
-     has the long English notename `c-sharpsharp'.
-
-   * The visual style of tremolo slashes (shape, style and slope) is
-     now more finely controlled.
-
-          [image of music]
+          \key aflat \major
 
+     Double accidentals do not get another hyphen, so the Dutch ‘cisis’
+     has the long English notename ‘c-sharpsharp’.
 
-   * Multi-measure rests have length according to their total duration,
-     under the control of `MultiMeasureRest.space-increment'.
+   • The visual style of tremolo slashes (shape, style and slope) is now
+     more finely controlled.
+          image of music
 
-          [image of music]
+   • Multi-measure rests have length according to their total duration,
+     under the control of ‘MultiMeasureRest.space-increment’.
+          image of music
 
+   • Page numbers may now be printed in roman numerals, by setting the
+     ‘page-number-type’ paper variable.
 
-   * Page numbers may now be printed in roman numerals, by setting the
-     `page-number-type' paper variable.
-
-   * It is now possible to use `\time' and `\partial' together to
-     change the time signature in mid measure.
+   • It is now possible to use ‘\time’ and ‘\partial’ together to change
+     the time signature in mid measure.
 
           \override Score.BarNumber.break-visibility = #end-of-line-invisible
           \partial 4 \time 3/4 f4 | 2 4 | 2 \bar "||"
           \time 9/8 \partial 4. f8 8 8 | 2. 8 8 8 |
-           [image of music]
-
+          image of music
 
-   * It is now possible to override the `text' property of chord names.
+   • It is now possible to override the ‘text’ property of chord names.
 
           <<
           \new ChordNames \chordmode {
@@ -327,102 +317,99 @@ New features in 2.20 since 2.18
             d
           }
           >>
-           [image of music]
-
+          image of music
 
-   * Improved horizontal alignment when using `TextScript', with
-     `DynamicText' or `LyricText'.
+   • Improved horizontal alignment when using ‘TextScript’, with
+     ‘DynamicText’ or ‘LyricText’.
 
-   * A new command `\magnifyStaff' has been added which scales staff
+   • A new command ‘\magnifyStaff’ has been added which scales staff
      sizes, staff lines, bar lines, beamlets and horizontal spacing
-     generally at the `Staff' context level.  Staff lines are prevented
+     generally at the ‘Staff’ context level.  Staff lines are prevented
      from being scaled smaller than the default since the thickness of
      stems, slurs, and the like are all based on the staff line
      thickness.
 
-   * `InstrumentName' now supports `text-interface'.
-
-   * There is now support for controlling the `expression level' of
-     MIDI channels using the `Staff.midiExpression' context property.
-     This can be used to alter the perceived volume of even sustained
-     notes (albeit in a very `low-level' way) and accepts a number
-     value between `0.0' and `1.0'.
-
-     \score {
-       \new Staff \with {
-         midiExpression = #0.6
-         midiInstrument = #"clarinet"
-       }
-       <<
-         { a'1~ a'1 }
-         {
-           \set Staff.midiExpression = #0.7 s4\f\<
-           \set Staff.midiExpression = #0.8 s4
-           \set Staff.midiExpression = #0.9 s4
-           \set Staff.midiExpression = #1.0 s4
-
-           \set Staff.midiExpression = #0.9 s4\>
-           \set Staff.midiExpression = #0.8 s4
-           \set Staff.midiExpression = #0.7 s4
-           \set Staff.midiExpression = #0.6 s4\!
-         }
-       >>
-       \midi { }
-     }
-
-   * Support for making it easier to use alternative `music' fonts other
+   • ‘InstrumentName’ now supports ‘text-interface’.
+
+   • There is now support for controlling the ‘expression level’ of MIDI
+     channels using the ‘Staff.midiExpression’ context property.  This
+     can be used to alter the perceived volume of even sustained notes
+     (albeit in a very ‘low-level’ way) and accepts a number value
+     between ‘0.0’ and ‘1.0’.
+
+          \score {
+            \new Staff \with {
+              midiExpression = #0.6
+              midiInstrument = #"clarinet"
+            }
+            <<
+              { a'1~ a'1 }
+              {
+                \set Staff.midiExpression = #0.7 s4\f\<
+                \set Staff.midiExpression = #0.8 s4
+                \set Staff.midiExpression = #0.9 s4
+                \set Staff.midiExpression = #1.0 s4
+
+                \set Staff.midiExpression = #0.9 s4\>
+                \set Staff.midiExpression = #0.8 s4
+                \set Staff.midiExpression = #0.7 s4
+                \set Staff.midiExpression = #0.6 s4\!
+              }
+            >>
+            \midi { }
+          }
+
+   • Support for making it easier to use alternative ‘music’ fonts other
      than the default Emmentaler in LilyPond has been added.  See
-     `http://fonts.openlilylib.org/' for more information.
+     <http://fonts.openlilylib.org/> for more information.
 
-   * Grobs and their parents can now be aligned separately allowing
-     more flexibility for grob positions.  For example the `left' edge
-     of a grob can now be aligned on the `center' of its parent.
+   • Grobs and their parents can now be aligned separately allowing more
+     flexibility for grob positions.  For example the ‘left’ edge of a
+     grob can now be aligned on the ‘center’ of its parent.
 
-   * Improvements to the `\partial' command have been made to avoid
+   • Improvements to the ‘\partial’ command have been made to avoid
      problems when using multiple, parallel contexts.
 
-   * `\chordmode' can now use `< >' and `<< >>' constructs.
+   • ‘\chordmode’ can now use ‘< >’ and ‘<< >>’ constructs.
 
-   * A new command `\tagGroup' has now been added.  This complements
-     the existing `\keepWithTag' and `\removeWithTag' commands.  For
+   • A new command ‘\tagGroup’ has now been added.  This complements the
+     existing ‘\keepWithTag’ and ‘\removeWithTag’ commands.  For
      Example:
 
-     \tagGroup #'(violinI violinII viola cello)
+          \tagGroup #'(violinI violinII viola cello)
 
-     declares a list of `tags' that belong to a single `tag group'.
+     declares a list of ‘tags’ that belong to a single ‘tag group’.
 
-     \keepWithTag #'violinI
+          \keepWithTag #'violinI
 
-     Is now only concerned with `tags' from `violinI'’s tag group.
+     Is now only concerned with ‘tags’ from ‘violinI’’s tag group.
 
-     Any element of the included music tagged with one or more tags
-     from the group, but _not_ with VIOLINI, will be removed.
+     Any element of the included music tagged with one or more tags from
+     the group, but _not_ with VIOLINI, will be removed.
 
-   * The `\addlyrics' function now works with arbitrary contexts
-     incuding `Staff'.
+   • The ‘\addlyrics’ function now works with arbitrary contexts
+     incuding ‘Staff’.
 
-   * String numbers can now also be used to print roman numerals (e.g.
+    String numbers can now also be used to print roman numerals (e.g.
      for unfretted string instruments).
-
           c2\2
           \romanStringNumbers
           c\2
           \arabicStringNumbers
           c1\3
-           [image of music]
+          image of music
 
+   • The ‘thin-kern’ property of the ‘BarLine’ grob has been renamed to
+     ‘segno-kern’.
 
-   * The `thin-kern' property of the `BarLine' grob has been renamed to
-     `segno-kern'.
-
-   * `KeyCancellation' grobs now ignore cue clefs (like `KeySignature'
+   • ‘KeyCancellation’ grobs now ignore cue clefs (like ‘KeySignature’
      grobs do).
 
-   * Add support for `\once \unset'
+   • Add support for ‘\once \unset’
 
-   * It is now possible to individually color both the dots and
-     parentheses in fret diagrams when using the
-     `\fret-diagram-verbose' markup command.
+    It is now possible to individually color both the dots and
+     parentheses in fret diagrams when using the ‘\fret-diagram-verbose’
+     markup command.
 
           \new Voice {
             c1^\markup {
@@ -452,13 +439,12 @@ New features in 2.20 since 2.18
               }
             }
           }
-           [image of music]
-
+          image of music
 
-   * Two new properties have been added for use in
-     `fret-diagram-details' when using the `\fret-diagram-verbose'
-     markup command; `fret-label-horizontal-offset' which affects the
-     `fret-label-indication' and `paren-padding' which controls the
+    Two new properties have been added for use in
+     ‘fret-diagram-details’ when using the ‘\fret-diagram-verbose’
+     markup command; ‘fret-label-horizontal-offset’ which affects the
+     ‘fret-label-indication’ and ‘paren-padding’ which controls the
      space between the dot and the parentheses surrounding it.
 
           \new Voice {
@@ -485,26 +471,23 @@ New features in 2.20 since 2.18
               }
             }
           }
-           [image of music]
+          image of music
 
-
-   * A new markup command `\justify-line' has been added.  Similar to
-     the `\fill-line' markup command except that instead of setting
-     _words_ in columns, the `\justify-line' command balances the
+   • A new markup command ‘\justify-line’ has been added.  Similar to
+     the ‘\fill-line’ markup command except that instead of setting
+     _words_ in columns, the ‘\justify-line’ command balances the
      whitespace between them ensuring that when there are three or more
      words in a markup, the whitespace is always consistent.
 
           \markup \fill-line {oooooo oooooo oooooo oooooo}
           \markup \fill-line {ooooooooo oooooooo oo ooo}
-           [image of music]
-
+          image of music
 
           \markup \justify-line {oooooo oooooo oooooo oooooo}
           \markup \justify-line {ooooooooo oooooooo oo ooo}
-           [image of music]
+          image of music
 
-
-   * A new command `\magnifyMusic' has been added, which allows the
+   • A new command ‘\magnifyMusic’ has been added, which allows the
      notation size to be changed without changing the staff size, while
      automatically scaling stems, beams, and horizontal spacing.
 
@@ -522,32 +505,30 @@ New features in 2.20 since 2.18
               }
             }
           >>
-           [image of music]
-
+          image of music
 
-   * A new flexible template suitable for a range of choral music, is
-     now provided.  This may be used to create simple choral music,
-     with or without piano accompaniment, in two or four staves. Unlike
-     other templates, this template is `built-in', which means it does
-     not need to be copied and edited: instead it is simply `\include''d
-     in the input file.  For details, see *note Built-in templates:
-     (lilypond-learning)Built-in templates.
+    A new flexible template suitable for a range of choral music, is
+     now provided.  This may be used to create simple choral music, with
+     or without piano accompaniment, in two or four staves.  Unlike
+     other templates, this template is ‘built-in’, which means it does
+     not need to be copied and edited: instead it is simply ‘\include’’d
+     in the input file.  For details, see *note
+     (lilypond-learning)Built-in templates::.
 
-   * The positioning of tuplet numbers for kneed beams has been
+    The positioning of tuplet numbers for kneed beams has been
      significantly improved.  Previously, tuplet numbers were placed
-     according to the position of the tuplet bracket, even if it was
-     not printed.  This could lead to stranded tuplet numbers.  Now
-     they are now positioned closer to the kneed-beam when an
-     appropriate beam segment exists for its placement and when the
-     bracket is not drawn.
+     according to the position of the tuplet bracket, even if it was not
+     printed.  This could lead to stranded tuplet numbers.  Now they are
+     now positioned closer to the kneed-beam when an appropriate beam
+     segment exists for its placement and when the bracket is not drawn.
 
      Collision detection is also added, offsetting horizontally if too
-     close to an adjoining note column but preserving the number's
-     vertical distance from the kneed beam.  If the number itself is
-     too large to fit in the available space the original,
-     bracket-based, positioning system is used instead; and in the
-     event of a collision (e.g. with an accidental) the tuplet number
-     is moved vertically away instead.
+     close to an adjoining note column but preserving the numbers
+     vertical distance from the kneed beam.  If the number itself is too
+     large to fit in the available space the original, bracket-based,
+     positioning system is used instead; and in the event of a collision
+     (e.g.  with an accidental) the tuplet number is moved vertically
+     away instead.
 
           \time 3/4
           \override Beam.auto-knee-gap = 3
@@ -556,11 +537,10 @@ New features in 2.20 since 2.18
             c'8 g,, e''
             g,,8 e''' c,,
           }
-           [image of music]
-
+          image of music
 
      The original kneed-beam tuplet behavior is still available through
-     an `\override' via a new, `knee-to-beam' property.
+     an ‘\override’ via a new, ‘knee-to-beam’ property.
 
           \time 3/4
           \override Beam.auto-knee-gap = 3
@@ -570,49 +550,47 @@ New features in 2.20 since 2.18
             c'8 g,, e''
             g,,8 e''' c,,
           }
-           [image of music]
-
-
-   * `\lyricsto' and `\addLyrics' have been `harmonized'.  Both now
-     accept the same kind of delimited argument list that `\lyrics' and
-     `\chords' accept.  Backward compatibility has been added so music
-     identifiers (i.e. `\mus') are permitted as arguments.  A
-     `convert-ly' rule has been added that removes redundant uses of
-     `\lyricmode' and rearranges combinations with context starters such
-     that `\lyricsto' in general is applied last (i.e. like
-     `\lyricmode' would be).
-
-   * Scheme functions and identifiers can now be used as output
+          image of music
+
+   • ‘\lyricsto’ and ‘\addLyrics’ have been ‘harmonized’.  Both now
+     accept the same kind of delimited argument list that ‘\lyrics’ and
+     ‘\chords’ accept.  Backward compatibility has been added so music
+     identifiers (i.e.  ‘\mus’) are permitted as arguments.  A
+     ‘convert-ly’ rule has been added that removes redundant uses of
+     ‘\lyricmode’ and rearranges combinations with context starters such
+     that ‘\lyricsto’ in general is applied last (i.e.  like
+     ‘\lyricmode’ would be).
+
+   • Scheme functions and identifiers can now be used as output
      definitions.
 
-   * Scheme expressions can now be used as chord constituents.
+    Scheme expressions can now be used as chord constituents.
 
-   * Improved visual spacing of small and regular `MI' Funk and Walker
+   • Improved visual spacing of small and regular ‘MI’ Funk and Walker
      noteheads so they are now the same width as other shaped notes in
-     their respective sets.  `SOL' noteheads are also now visually
+     their respective sets.  ‘SOL’ noteheads are also now visually
      improved when used with both the normal Aiken and Sacred Harp
      heads, as well as with the thin variants.
 
-   * `LeftEdge' now has a definable `Y-extent' (i.e.vertical).  See *note
-     LeftEdge: (lilypond-internals)LeftEdge.
+   • ‘LeftEdge’ now has a definable ‘Y-extent’ (i.e.vertical).  See
+     *note (lilypond-internals)LeftEdge::.
 
-   * Added a new `make-path-stencil' function that supports all `path'
+   • Added a new ‘make-path-stencil’ function that supports all ‘path’
      commands both relative and absolute:
 
-     `lineto', `rlineto', `curveto', `rcurveto', `moveto', `rmoveto',
-     `closepath'.  The function also supports `single-letter' syntax
+     ‘lineto’, ‘rlineto’, ‘curveto’, ‘rcurveto’, ‘moveto’, ‘rmoveto’,
+     ‘closepath’.  The function also supports ‘single-letter’ syntax
      used in standard SVG path commands:
 
-     `L', `l', `C', `c', `M', `m', `Z' and `z'.  The new command is
-     also backward-compatible with the original
-     `make-connected-path-stencil' function.  Also see
-     `scm/stencil.scm'.
+     ‘L’, ‘l’, ‘C’, ‘c’, ‘M’, ‘m’, ‘Z’ and ‘z’.  The new command is also
+     backward-compatible with the original ‘make-connected-path-stencil’
+     function.  Also see ‘scm/stencil.scm’.
 
-   * Context properties named in the `alternativeRestores' property are
+   • Context properties named in the ‘alternativeRestores’ property are
      restored to their value at the start of the _first_ alternative in
      all subsequent alternatives.
 
-     Currently the default set restores `current meter';
+     Currently the default set restores ‘current meter’;
 
           \time 3/4
           \repeat volta 2 { c2 e4 | }
@@ -621,10 +599,9 @@ New features in 2.20 since 2.18
             { f2 d4 | }
           }
           g2. |
-           [image of music]
-
+          image of music
 
-     `measure position';
+     ‘measure position’;
 
           \time 3/4
           \repeat volta 2 { c2 e4 | }
@@ -635,10 +612,9 @@ New features in 2.20 since 2.18
             { f2 d4 | }
           }
           g2. |
-           [image of music]
+          image of music
 
-
-     and `chord changes';
+     and ‘chord changes’;
 
           <<
             \new ChordNames {
@@ -654,23 +630,21 @@ New features in 2.20 since 2.18
             \chordmode { d:m }
           }
           >>
-           [image of music]
-
+          image of music
 
-   * Improved MIDI output for breathe marks.  After tied notes, breaths
-     take time _only_ from the last note of the tie; e.g.  `{ c4~ c8
-     \breathe }' performs as `{ c4~ c16 r }' instead of `{ c4 r8 }'.
-     This is more consistent with articulations and how humans
-     interpret breaths after ties.  It now also makes it easier to
-     align simultaneous breathe marks over multiple parts, all with
-     different note lengths.
+    Improved MIDI output for breathe marks.  After tied notes, breaths
+     take time _only_ from the last note of the tie; e.g.  { c4~ c8
+     \breathe }’ performs as ‘{ c4~ c16 r }’ instead of ‘{ c4 r8 }’.
+     This is more consistent with articulations and how humans interpret
+     breaths after ties.  It now also makes it easier to align
+     simultaneous breathe marks over multiple parts, all with different
+     note lengths.
 
-   * A new note head style for Tabulature has been added;
-     `TabNoteHead.style = #'slash'.
+    A new note head style for Tabulature has been added;
+     ‘TabNoteHead.style = #'slash’.
 
-   * Four new Clef glyphs have been added _Double G_, _Tenor G_,
+    Four new Clef glyphs have been added _Double G_, _Tenor G_,
      _Varpercussion_ and _varC_ and their related tessitura.
-
             \override Staff.Clef.full-size-change = ##t
 
             \clef "GG" c c c c
@@ -691,14 +665,13 @@ New features in 2.20 since 2.18
             \clef "tenorvarC" c c c c
             \clef "baritonevarC" c c c c
             \clef "varpercussion" c c c c
-           [image of music]
+          image of music
 
-
-   * Isolated durations in music sequences now stand for unpitched
+   • Isolated durations in music sequences now stand for unpitched
      notes.  This may be useful for specifying rhythms to music or
-     scheme functions.  When encountered in the final score, the
-     pitches are provided by the preceding note or chord.  Here are two
-     examples where this makes for readable input:
+     scheme functions.  When encountered in the final score, the pitches
+     are provided by the preceding note or chord.  Here are two examples
+     where this makes for readable input:
 
           \new DrumStaff \with { \override StaffSymbol.line-count = 1 }
           \drummode {
@@ -706,50 +679,46 @@ New features in 2.20 since 2.18
             tambourine 8 \tuplet 3/2 { 16 16 16 }
                        8 \tuplet 3/2 { 16 16 16 } 8 8 |
           }
-           [image of music]
-
+          image of music
 
           \new Staff { r16 c'16 ~ 8 ~ 4 ~ 2 | }
-           [image of music]
+          image of music
 
-
-   * `\displayLilyMusic' and its underlying Scheme functions no longer
+   • ‘\displayLilyMusic’ and its underlying Scheme functions no longer
      omit redundant note durations.  This makes it easier to reliably
      recognize and format standalone durations in expressions like
-     { c4 d4 8 }
+          { c4 d4 8 }
 
-   * Beaming exceptions can now be constructed using the
-     `\beamExceptions' scheme function.  One can now write
+    Beaming exceptions can now be constructed using the
+     ‘\beamExceptions’ scheme function.  One can now write
 
           \time #'(2 1) 3/16
           \set Timing.beamExceptions =
             \beamExceptions { 32[ 32] 32[ 32] 32[ 32] }
           c16 c c |
           \repeat unfold 6 { c32 } |
-           [image of music]
-
+          image of music
 
-     with multiple exceptions separated with `|' bar checks (writing
-     the exception pattern without pitches is convenient but not
-     mandatory).  Previously, setting the beam exceptions would have
-     required writing
+     with multiple exceptions separated with ‘|’ bar checks (writing the
+     exception pattern without pitches is convenient but not mandatory).
+     Previously, setting the beam exceptions would have required writing
 
-     \set Timing.beamExceptions =
-     #'(                         ;start of alist
-        (end .                   ;entry for end of beams
-         (                       ;start of alist of end points
-          ((1 . 32) . (2 2 2))   ;rule for 1/32 beams -- end each 1/16
-         )))
+          \set Timing.beamExceptions =
+          #'(                         ;start of alist
+             (end .                   ;entry for end of beams
+              (                       ;start of alist of end points
+               ((1 . 32) . (2 2 2))   ;rule for 1/32 beams -- end each 1/16
+              )))
 
-   * The most common articulations are now reflected in MIDI output.
+    The most common articulations are now reflected in MIDI output.
      Accent and marcato make notes louder; staccato, staccatissimo and
-     portato make them shorter. Breath marks shorten the previous note.
+     portato make them shorter.  Breath marks shorten the previous note.
 
-     This behavior is customizable through the `midiLength' and
-     `midiExtraVelocity' properties on `ArticulationEvent'.  See
-     `script-init.ly' for examples.
+     This behavior is customizable through the ‘midiLength’ and
+     ‘midiExtraVelocity’ properties on ‘ArticulationEvent’.  See
+     ‘script-init.ly’ for examples.
 
-   * The PostScript functionality of stroke adjustment is no longer
+    The PostScript functionality of stroke adjustment is no longer
      applied automatically but left to the discretion of the PostScript
      device (by default, Ghostscript uses it for resolutions up to
      150dpi when generating raster images).  When it is enabled, a more
@@ -757,14 +726,8 @@ New features in 2.20 since 2.18
      adjustment is employed mostly for stems and bar lines.
 
      Stroke adjustment can be forced by specifying the command line
-     option `-dstrokeadjust' to LilyPond.  When generating `PDF' files,
-     this will usually result in markedly better looking `PDF' previews
+     option ‘-dstrokeadjust’ to LilyPond.  When generating ‘PDF’ files,
+     this will usually result in markedly better looking ‘PDF’ previews
      but significantly larger file size.  Print quality at high
      resolutions will be unaffected.
 
-
-
-\1f
-Local Variables:
-coding: utf-8
-End:
index 68e0e1397c7c708bb1d5ad2f316b782c93684a2c..09f0f1847aa9502b719570110be2a62c3d872062 100644 (file)
@@ -4,67 +4,67 @@ Toplevel README
 1 Toplevel README
 *****************
 
-LilyPond is a music typesetter.  It produces beautiful sheet music
-using a description file as input.  LilyPond is part of the GNU Project.
+LilyPond is a music typesetter.  It produces beautiful sheet music using
+a description file as input.  LilyPond is part of the GNU Project.
 
 1.1 Versioning
 ==============
 
 LilyPond uses a versioning scheme that easily identifies stable and
-development releases.  In a version "x.y.z", an even second number 'y'
-denotes a stable version.  For development versions 'y' is odd.
+development releases.  In a version "x.y.z", an even second number ’y’
+denotes a stable version.  For development versions ’y’ is odd.
 
 1.2 Downloading
 ===============
 
 The primary download site for sourcecode is
-`http://lilypond.org/downloads/'.
+<http://lilypond.org/downloads/>.
 
 1.3 Compilation
 ===============
 
 For compiling and running LilyPond see the installation instructions.
 These instructions can be found when you unpack lilypond, as
-`lilypond-x.y.z/INSTALL.txt'.  They are also available on the web at
-`http://lilypond.org/doc/v2.12/Documentation/topdocs/INSTALL.html'.
+‘lilypond-x.y.z/INSTALL.txt’.  They are also available on the web at
+<http://lilypond.org/doc/v2.12/Documentation/topdocs/INSTALL.html>.
 
 1.4 Documentation
 =================
 
-The documentation is available online at `http://lilypond.org/doc/'.
+The documentation is available online at <http://lilypond.org/doc/>.
 
    You can also build it locally: follow the instructions under
-`Building documentation' in the installation instructions.
+‘Building documentation’ in the installation instructions.
 
 1.5 Comments
 ============
 
-Send your criticism, comments, bugreports, patches, etc. to the mailing
+Send your criticism, comments, bugreports, patches, etc.  to the mailing
 list, not to us personally.
 
    We have the following mailing lists:
 
-   * info-lilypond@gnu.org
+    info-lilypond@gnu.org
      (http://lists.gnu.org/mailman/listinfo/info-lilypond) is a
-     low-volume list for information on LilyPond project.      This
-     list is moderated; ask     David R. Linn <drl@gnu.org> or
-     Han-Wen <hanwen@xs4all.nl> to send announcements for this list.
+     low-volume list for information on LilyPond project.  This list is
+     moderated; ask David R. Linn <drl@gnu.org> or Han-Wen
+     <hanwen@xs4all.nl> to send announcements for this list.
 
-   * lilypond-devel@gnu.org
-     (http://lists.gnu.org/mailman/listinfo/lilypond-devel)   for
+    lilypond-devel@gnu.org
+     (http://lists.gnu.org/mailman/listinfo/lilypond-devel) for
      discussions about developing LilyPond, in particular the unstable
      series.
 
-   * lilypond-user@gnu.org
-     (http://lists.gnu.org/mailman/listinfo/lilypond-user)   for
+    lilypond-user@gnu.org
+     (http://lists.gnu.org/mailman/listinfo/lilypond-user) for
      discussions about using LilyPond, in particular the stable series.
 
-   * bug-lilypond@gnu.org
+    bug-lilypond@gnu.org
      (http://lists.gnu.org/mailman/listinfo/bug-lilypond) for sending
      bugreports.
 
-   * lilypond-auto@gnu.org
-     (http://lists.gnu.org/mailman/listinfo/lilypond-auto)  for
+    lilypond-auto@gnu.org
+     (http://lists.gnu.org/mailman/listinfo/lilypond-auto) for
      notifications from the issue tracking systems of LilyPond.
 
    You can search the lists from our searching facilities
diff --git a/VERSION b/VERSION
index 52ba04b1e7123781c08a858d5829fceca3f45a51..0c746e0c7bccbe265d8a73a2a2545da6f961fc71 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,7 +1,7 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=2
 MINOR_VERSION=19
-PATCH_LEVEL=45
+PATCH_LEVEL=47
 MY_PATCH_LEVEL=
 VERSION_STABLE=2.18.2
-VERSION_DEVEL=2.19.45
+VERSION_DEVEL=2.19.47
index 999c94bab80181caaac157f4ba0b5f76f20671aa..391e49da48422228bc125cc22dfd46cd6ed17c18 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.19.21"
+\version "2.19.46"
 
 \header  {
 texidoc = "Context modifications can be stored into a variable as a
@@ -41,11 +41,11 @@ music = \relative { \key fis \minor c''1 d e }
     \mark
     \markup { "Remove time sig, add ambitus, set staff to 4 lines" }
     \music }
-  % Some context modifications manually written in a \with block
+  % The same mods as direct value of \with
   \new Staff \with \ctxmod {
     \mark \markup { "The same mods using a variable" } \music
   }
-  % The same mods as direct value of \with
+  % Some context modifications manually written in a \with block
   \new Staff \with { \ctxmod } {
     \mark \markup { "The same mods using a variable and \with" }
     \music
@@ -65,8 +65,8 @@ music = \relative { \key fis \minor c''1 d e }
     \ctxmod
     \remove "Key_engraver"
   } { \mark \markup { "Also remove clef and key engravers" } \music }
-  % Mods can be inserted instead of a \with block (i.e. \with is not required)
-  \new Staff \ctxmod { \mark \markup { "The same mods as staff 2" } \music }
+  % Test rendered redundant by issue 4911
+  \new Staff \with \ctxmod { \mark \markup { "The same mods as staff 2" } \music }
   \new Staff { \mark \markup { "Back to default" } \music }
 >>
 }
diff --git a/input/regression/midi/crescendo-abutting.ly b/input/regression/midi/crescendo-abutting.ly
deleted file mode 100644 (file)
index da0ff4f..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-\version "2.19.44"
-
-\header {
-  texidoc="One (de)crescendo ends as the next begins."
-}
-
-\score {
-   { c\< c\> c\! }
-   \midi {}
-}
diff --git a/input/regression/midi/crescendo-gap-compatible-target.ly b/input/regression/midi/crescendo-gap-compatible-target.ly
new file mode 100644 (file)
index 0000000..38c19a3
--- /dev/null
@@ -0,0 +1,18 @@
+\version "2.19.45"
+
+\header {
+  texidoc="When there is a gap between the end of a crescendo and a
+  subsequent explicit dynamic, the dynamic performer uses the explicit
+  dynamic as the target of the crescendo."
+
+  %% Note: Choosing this behavior simplified the implementation.  In
+  %% the developer's opinion, it is difficult to argue that choosing a
+  %% target dynamic that under- or overshoots the explicit dynamic is
+  %% more correct.
+
+}
+
+\score {
+   { c\mf\< c\! c\f }
+   \midi {}
+}
diff --git a/input/regression/midi/crescendo-return-crescendo.ly b/input/regression/midi/crescendo-return-crescendo.ly
new file mode 100644 (file)
index 0000000..4ab8dac
--- /dev/null
@@ -0,0 +1,12 @@
+\version "2.19.44"
+
+\header {
+  texidoc="The dynamic performer chooses a reasonable peak dynamic and
+  returns to the original dynamic.  The latter, extreme crescendo does
+  not affect the former."
+}
+
+\score {
+   { c\mf\< c\> c\< c\sf }
+   \midi {}
+}
diff --git a/input/regression/midi/crescendo-return-louder-target.ly b/input/regression/midi/crescendo-return-louder-target.ly
new file mode 100644 (file)
index 0000000..f3fcb36
--- /dev/null
@@ -0,0 +1,11 @@
+\version "2.19.45"
+
+\header {
+  texidoc="The dynamic performer chooses a reasonable peak dynamic and
+  returns to the specified dynamic."
+}
+
+\score {
+   { c\mf\< c\> c\f }
+   \midi {}
+}
diff --git a/input/regression/midi/crescendo-return-softer-target.ly b/input/regression/midi/crescendo-return-softer-target.ly
new file mode 100644 (file)
index 0000000..788724b
--- /dev/null
@@ -0,0 +1,11 @@
+\version "2.19.45"
+
+\header {
+  texidoc="The dynamic performer chooses a reasonable peak dynamic and
+  returns to the specified dynamic."
+}
+
+\score {
+   { c\mf\< c\> c\p }
+   \midi {}
+}
diff --git a/input/regression/midi/crescendo-return-unspecified-target.ly b/input/regression/midi/crescendo-return-unspecified-target.ly
new file mode 100644 (file)
index 0000000..065f674
--- /dev/null
@@ -0,0 +1,11 @@
+\version "2.19.44"
+
+\header {
+  texidoc="The dynamic performer chooses a reasonable peak dynamic and
+  returns to the original dynamic."
+}
+
+\score {
+   { c\mf\< c\> c\! }
+   \midi {}
+}
diff --git a/input/regression/midi/crescendo-single-compatible-target.ly b/input/regression/midi/crescendo-single-compatible-target.ly
new file mode 100644 (file)
index 0000000..fcc0f5a
--- /dev/null
@@ -0,0 +1,11 @@
+\version "2.19.44"
+
+\header {
+  texidoc="The velocity of notes during a crescendo is linearly
+  interpolated between the starting and target dynamics."
+}
+
+\score {
+   { c\mf\< c c\f }
+   \midi {}
+}
diff --git a/input/regression/midi/crescendo-single-unspecified-target.ly b/input/regression/midi/crescendo-single-unspecified-target.ly
new file mode 100644 (file)
index 0000000..d995609
--- /dev/null
@@ -0,0 +1,11 @@
+\version "2.19.44"
+
+\header {
+  texidoc="If no explicit dynamic follows a crescendo, the dynamic
+  performer chooses a reasonable target dynamic."
+}
+
+\score {
+   { c\mf\< c\! }
+   \midi {}
+}
diff --git a/input/regression/midi/decrescendo-multiple-compatible-target.ly b/input/regression/midi/decrescendo-multiple-compatible-target.ly
new file mode 100644 (file)
index 0000000..d066381
--- /dev/null
@@ -0,0 +1,12 @@
+\version "2.19.45"
+
+\header {
+  texidoc="The dynamic performer apportions changes to consecutive
+  decrescendi in proportion to their duration.  In this case, 1/3 of
+  the change occurs over the first decrescendo."
+}
+
+\score {
+   { c\f\> c\! c2\> | c1\p }
+   \midi {}
+}
diff --git a/input/regression/midi/decrescendo-single-contrary-target.ly b/input/regression/midi/decrescendo-single-contrary-target.ly
new file mode 100644 (file)
index 0000000..7c13541
--- /dev/null
@@ -0,0 +1,15 @@
+\version "2.19.45"
+
+\header {
+  texidoc="When a decrescendo is followed by an explicit dynamic that
+  is louder than the starting dynamic, the dynamic performer chooses a
+  reasonable target dynamic.  The velocity of notes during the
+  decrescendo is linearly interpolated between the starting and target
+  dynamics, with the explicit dynamic taking effect at the last
+  moment."
+}
+
+\score {
+   { c\mf\> c c\f }
+   \midi {}
+}
diff --git a/input/regression/midi/dynamic-voices-sequential.ly b/input/regression/midi/dynamic-voices-sequential.ly
new file mode 100644 (file)
index 0000000..2d25b2d
--- /dev/null
@@ -0,0 +1,15 @@
+\version "2.19.47"
+
+\header {
+  texidoc="The MIDI performer operates in Voice context by default,
+  so dynamics in different voices are independent."
+}
+
+\score {
+  \new Staff {
+    \new Voice = "A" c'2\p
+    \new Voice = "A" c'2 % default dynamic expected
+  }
+
+  \midi {}
+}
diff --git a/input/regression/midi/dynamic-voices-simultaneous.ly b/input/regression/midi/dynamic-voices-simultaneous.ly
new file mode 100644 (file)
index 0000000..091dd68
--- /dev/null
@@ -0,0 +1,15 @@
+\version "2.19.47"
+
+\header {
+  texidoc="The MIDI performer operates in Voice context by default,
+  so dynamics in different voices are independent."
+}
+
+\score {
+  \new Staff <<
+    \new Voice = "A" e'2\p
+    \new Voice = "A" c'2 % default dynamic expected
+  >>
+
+  \midi {}
+}
diff --git a/input/regression/midi/midi-overlapping-notes.ly b/input/regression/midi/midi-overlapping-notes.ly
new file mode 100644 (file)
index 0000000..e808bb9
--- /dev/null
@@ -0,0 +1,22 @@
+\header {
+
+  texidoc = "Notes with equal pitch overlapping in time on the same
+MIDI channel should produce multiple MIDI note-on events, but no
+isolated note-off events before the last of these notes ends."
+
+}
+
+\version "2.19.45"
+
+\score {
+  \new Staff \with { midiInstrument = "church organ" }
+  \new Voice \relative c' <<
+    % This combination of music expressions should not produce audible
+    % pauses between notes in the MIDI output, in particular, before the
+    % 'g1' note in the first expression.
+    { c1 s1 g1 }
+    { s4 c4 }
+    { s2 c2~ c1 s1 }
+  >>
+  \midi { }
+}
index 9a503b53c6be06ef6997e4aa5222978227a87037..83a2401a721e1cd085c7d057bf57997b6b96fd2c 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.19.46"
 
 \header {
   texidoc = "@code{\\RemoveEmptyStaves} is defined separately from
@@ -9,7 +9,7 @@ context definitions so it can be used outside of @code{\\layout} blocks."
   ragged-right = ##t
 }
 
-\new Staff \RemoveEmptyStaves {
+\new Staff \with \RemoveEmptyStaves {
   c'1 \break
   r1
 }
diff --git a/input/regression/retrograde.ly b/input/regression/retrograde.ly
new file mode 100644 (file)
index 0000000..dd7f7eb
--- /dev/null
@@ -0,0 +1,30 @@
+\version "2.18.0"
+
+\header {
+  texidoc = "@code{\\retrograde} can deal with crescendo and
+  decrescendo as long as they are properly paired with
+  @code{\\endcr}/@code{\\!} and @code{\\enddecr}.  Direction modifiers
+  on slurs like @code{^(} need to be repeated as @code{^)} at the end.
+  Ties and glissandi work mostly (in-chord ties are turned into
+  ordinary per-chord/note ties, however)."
+}
+
+\layout { ragged-right = ##t }
+
+motif =
+\relative {
+  \override TextSpanner.bound-details.left.text = "motif"
+  <c' e>2~\startTextSpan  c16\< d^( e f~ f4:32^)\!\> |
+  <<
+    \context Voice = "voice" {
+      <g~ b>4 g8\glissando f\stopTextSpan\enddecr }
+    \\
+    { c2 }
+  >>
+}
+
+\new Voice = "voice" {
+  \motif
+  \override TextSpanner.bound-details.left.text = "retrograde motif"
+  \retrograde  \motif \bar "|."
+}
index d89a959149739604babe7b16bdd281512247ddc9..d97d215363db1d3f07414365b404e0122d408097 100644 (file)
@@ -68,7 +68,7 @@ in scheme."
      (SchemeTextSpanEvent
       . ((description . "Used to signal where scheme text spanner brackets
 start and stop.")
-         (types . (scheme-text-span-event span-event event))
+         (types . (post-event scheme-text-span-event span-event event))
          ))
      ))
 
index 16cb6656fbe56cf55ecf97edefed398f8bafb660..b35fb67f80e68ab058e1fd4e507e6899c1c06d97 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.17.30"
+\version "2.19.46"
 
 \header {
   texidoc = "An empty barline does not confuse the spacing engine too much.
@@ -15,7 +15,6 @@ The two scores should look approximately the same."
     \name "Top"
     \alias "Staff"
     \type "Engraver_group"
-    \consists "Output_property_engraver"
     \consists "Bar_engraver"
     \consists "Axis_group_engraver"
 
index 97a15d552aafaedc86053945c291d1d796d2eb7d..a8a78199c73096c15375110f5c50020b28912d13 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "midi-item.hh"
 #include "audio-column.hh"
+#include "international.hh"
 
 Audio_instrument::Audio_instrument (string instrument_string)
 {
@@ -101,24 +102,15 @@ Audio_key::Audio_key (int acc, bool major)
   major_ = major;
 }
 
-Audio_dynamic::Audio_dynamic ()
-  : volume_ (-1),
-    silent_ (false)
-{
-}
-
-Audio_span_dynamic::Audio_span_dynamic (Real min_volume, Real max_volume)
-{
-  grow_dir_ = CENTER;
-  min_volume_ = min_volume;
-  max_volume_ = max_volume;
-}
+const Real Audio_span_dynamic::MINIMUM_VOLUME = 0.0;
+const Real Audio_span_dynamic::MAXIMUM_VOLUME = 1.0;
+const Real Audio_span_dynamic::DEFAULT_VOLUME = 90.0 / 127.0;
 
-void
-Audio_span_dynamic::add_absolute (Audio_dynamic *d)
+Audio_span_dynamic::Audio_span_dynamic (Moment mom, Real volume)
+  : start_moment_ (mom),
+    duration_ (0)
 {
-  assert (d);
-  dynamics_.push_back (d);
+  set_volume (volume, volume);
 }
 
 Moment
@@ -140,53 +132,60 @@ moment_to_ticks (Moment m)
   return int (moment_to_real (m) * 384 * 4);
 }
 
-void
-Audio_span_dynamic::render ()
+void Audio_span_dynamic::set_end_moment (Moment mom)
 {
-  if (dynamics_.size () <= 1)
-    return;
-
-  assert (dynamics_[0]->volume_ >= 0);
-
-  while (dynamics_.back ()->volume_ > 0
-         && dynamics_.size () > 1
-         && sign (dynamics_.back ()->volume_ - dynamics_[0]->volume_) != grow_dir_)
+  if (mom < start_moment_)
     {
-      dynamics_.erase (dynamics_.end () - 1);
+      programming_error (_f ("end moment (%s) < start moment (%s)",
+                             mom.to_string ().c_str (),
+                             start_moment_.to_string ().c_str ()));
+      mom = start_moment_;
     }
 
-  if (dynamics_.size () <= 1)
+  duration_ = moment_to_real (mom - start_moment_);
+}
+
+void
+Audio_span_dynamic::set_volume (Real start, Real target)
+{
+  if (!(start >= 0))
     {
-      programming_error ("Impossible or ambiguous (de)crescendo in MIDI.");
-      return;
+      programming_error (_f ("invalid start volume: %f", start));
+      start = DEFAULT_VOLUME;
     }
 
-  Real start_v = dynamics_[0]->volume_;
-  if (dynamics_.back ()->volume_ < 0)
+  if (!(target >= 0))
     {
-      // The dynamic spanner does not end with an explicit dynamic script
-      // event.  Adjust the end volume by at most 1/4 of the available
-      // volume range in this case.
-      dynamics_.back ()->volume_ = max (min (start_v + grow_dir_ * (max_volume_ - min_volume_) * 0.25, max_volume_), min_volume_);
+      programming_error (_f ("invalid target volume: %f", target));
+      target = start;
     }
 
-  Real delta_v = dynamics_.back ()->volume_ - dynamics_[0]->volume_;
-
-  Moment start = dynamics_[0]->get_column ()->when ();
+  start_volume_ = start;
+  gain_ = target - start;
+}
 
-  Real total_t = moment_to_real (dynamics_.back ()->get_column ()->when () - start);
+Real Audio_span_dynamic::get_volume (Moment mom) const
+{
+  const Real when = moment_to_real (mom - start_moment_);
 
-  for (vsize i = 1; i < dynamics_.size (); i++)
+  if (when <= 0)
     {
-      Moment dt_moment = dynamics_[i]->get_column ()->when ()
-                         - start;
-
-      Real dt = moment_to_real (dt_moment);
-
-      Real v = start_v + delta_v * (dt / total_t);
+      if (when < 0)
+        programming_error (_f ("asked to compute volume at %f for dynamic span of duration %f starting at %s",
+                               when, duration_,
+                               start_moment_.to_string ().c_str ()));
+      return start_volume_;
+    }
 
-      dynamics_[i]->volume_ = v;
+  if (when >= duration_)
+    {
+      programming_error (_f ("asked to compute volume at +%f for dynamic span of duration %f starting at %s",
+                             when, duration_,
+                             start_moment_.to_string ().c_str ()));
+      return start_volume_ + gain_;
     }
+
+  return start_volume_ + gain_ * (when / duration_);
 }
 
 Audio_tempo::Audio_tempo (int per_minute_4)
@@ -206,20 +205,8 @@ Audio_text::Audio_text (Audio_text::Type type, const string &text_string)
   type_ = type;
 }
 
-Audio_control_function_value_change
-::Audio_control_function_value_change (Control control, Real value)
-  : control_ (control), value_ (value)
+Audio_control_change::Audio_control_change (int control, int value)
+  : control_ (control),
+    value_ (value)
 {
 }
-
-const Audio_control_function_value_change::Context_property
-Audio_control_function_value_change::context_properties_[] = {
-  // property name, enum constant, lower bound for range, upper bound for range
-  { "midiBalance",     BALANCE,      -1.0, 1.0 },
-  { "midiPanPosition", PAN_POSITION, -1.0, 1.0 },
-  { "midiExpression",  EXPRESSION,    0.0, 1.0 },
-  { "midiReverbLevel", REVERB_LEVEL,  0.0, 1.0 },
-  { "midiChorusLevel", CHORUS_LEVEL,  0.0, 1.0 },
-  // extra element to signify the end of the mapping, must be kept last
-  { 0,                 NUM_CONTROLS,  0.0, 0.0 }
-};
index 5ce67f0463d67176de80df71d0016d997ea704cb..23b7d43bfd4b104974691877bb08dbf71125daa3 100644 (file)
@@ -19,6 +19,7 @@
 
 #include "performer.hh"
 #include "audio-item.hh"
+#include "std-vector.hh"
 #include "stream-event.hh"
 #include "international.hh"
 
@@ -29,6 +30,8 @@ class Dynamic_performer : public Performer
 public:
   TRANSLATOR_DECLARATIONS (Dynamic_performer);
 protected:
+  virtual void acknowledge_audio_element (Audio_element_info info);
+  virtual void finalize ();
   void stop_translation_timestep ();
   void process_music ();
   Real equalize_volume (Real);
@@ -36,25 +39,286 @@ protected:
   void listen_decrescendo (Stream_event *);
   void listen_crescendo (Stream_event *);
   void listen_absolute_dynamic (Stream_event *);
+
+private:
+  void close_and_enqueue_span ();
+  Real compute_departure_volume (Direction depart_dir,
+                                 Real start_vol,
+                                 Real end_vol,
+                                 Real min_vol,
+                                 Real max_vol);
+  bool drive_state_machine (Direction next_grow_dir);
+  // next_vol < 0 means select a target dynamic based on growth direction.
+  // return actual next volume (computed if not provided)
+  Real finish_queued_spans (Real next_vol = -1.0);
+  Real look_up_absolute_volume (SCM dynamicString,
+                                Real defaultValue);
+
+private:
+  // This performer queues a number of dynamic spans waiting for the following
+  // pattern before computing their volume levels.
+  //
+  //  1. the first (de)crescendo, followed by ...
+  //  2. zero or more spans that either change in the same direction as the
+  //     first or do not change, followed by ...
+  //  3. zero or more spans that either change in the opposite direction as the
+  //     first or do not change
+  //
+  // The search may be cut short by an absolute dynamic or the end of the
+  // context.
+  enum State
+  {
+    STATE_INITIAL = 0, // waiting for a (de)crescendo
+    STATE_DEPART, // enqueued the first span, gathering same-direction spans
+    STATE_RETURN // gathering opposite-direction spans
+  };
+
+  struct UnfinishedSpan
+  {
+    Audio_span_dynamic *dynamic_;
+    Direction grow_dir_;
+
+    UnfinishedSpan () : dynamic_ (0), grow_dir_ (CENTER) {}
+  };
+
+  struct DynamicQueue
+  {
+    vector<UnfinishedSpan> spans_;
+    // total duration of (de)crescendi (i.e. excluding fixed-volume spans)
+    Real change_duration_;
+    Real min_target_vol_;
+    Real max_target_vol_;
+
+    DynamicQueue () : change_duration_ (0) {}
+
+    void clear ()
+    {
+      spans_.clear ();
+      change_duration_ = 0;
+    }
+
+    void push_back (const UnfinishedSpan &span,
+                    Real min_target_vol,
+                    Real max_target_vol)
+    {
+      if (span.grow_dir_ != CENTER)
+        change_duration_ += span.dynamic_->get_duration ();
+      min_target_vol_ = min_target_vol;
+      max_target_vol_ = max_target_vol;
+      spans_.push_back (span);
+    }
+
+    void set_volume (Real start_vol, Real target_vol);
+  };
+
 private:
+  vector<Audio_note *> notes_;
   Stream_event *script_event_;
   Drul_array<Stream_event *> span_events_;
-  Drul_array<Direction> grow_dir_;
-  Real last_volume_;
-  Audio_dynamic *absolute_;
-  Audio_span_dynamic *span_dynamic_;
-  Audio_span_dynamic *finished_span_dynamic_;
+  Direction next_grow_dir_;
+  Direction depart_dir_;
+  UnfinishedSpan open_span_;
+  DynamicQueue depart_queue_;
+  DynamicQueue return_queue_;
+  State state_;
 };
 
 Dynamic_performer::Dynamic_performer ()
+  : script_event_ (0),
+    next_grow_dir_ (CENTER),
+    depart_dir_ (CENTER),
+    state_ (STATE_INITIAL)
 {
-  last_volume_ = -1;
-  script_event_ = 0;
-  absolute_ = 0;
   span_events_[LEFT]
-    = span_events_[RIGHT] = 0;
-  span_dynamic_ = 0;
-  finished_span_dynamic_ = 0;
+  = span_events_[RIGHT] = 0;
+}
+
+void
+Dynamic_performer::acknowledge_audio_element (Audio_element_info inf)
+{
+  // Keep track of the notes played in this translation time step so that they
+  // can be pointed to the current dynamic in stop_translation_timestep.
+  if (Audio_note *n = dynamic_cast<Audio_note *> (inf.elem_)) {
+    notes_.push_back (n);
+  }
+}
+
+bool
+Dynamic_performer::drive_state_machine (Direction next_grow_dir)
+{
+  switch (state_)
+    {
+    case STATE_INITIAL:
+      if (next_grow_dir != CENTER)
+        {
+          state_ = STATE_DEPART;
+          depart_dir_ = next_grow_dir;
+        }
+      break;
+
+    case STATE_DEPART:
+      if (next_grow_dir == -depart_dir_)
+        state_ = STATE_RETURN;
+      break;
+
+    case STATE_RETURN:
+      if (next_grow_dir == depart_dir_)
+        {
+          state_ = STATE_DEPART;
+          return true;
+        }
+      break;
+    }
+
+  return false;
+}
+
+void
+Dynamic_performer::close_and_enqueue_span ()
+{
+  if (!open_span_.dynamic_)
+    programming_error ("no open dynamic span");
+  else
+    {
+      DynamicQueue &dq
+      = (state_ == STATE_RETURN) ? return_queue_ : depart_queue_;
+
+      // Changing equalizer settings in the course of the performance does not
+      // seem very likely.  This is a fig leaf: Equalize these limit volumes
+      // now as the required context properties are current.  Note that only
+      // the limits at the end of the last span in the queue are kept.
+
+      // Resist diminishing to silence.  (Idea: Look up "ppppp"
+      // with dynamicAbsoluteVolumeFunction, however that would yield 0.25.)
+      const Real min_target = equalize_volume (0.1);
+      const Real max_target
+      = equalize_volume (Audio_span_dynamic::MAXIMUM_VOLUME);
+
+      open_span_.dynamic_->set_end_moment (now_mom ());
+      dq.push_back (open_span_, min_target, max_target);
+    }
+
+  open_span_ = UnfinishedSpan ();
+}
+
+// Set the starting and target volume for each span in the queue.  The gain
+// (loss) of any (de)crescendo is proportional to its share of the total time
+// spent changing.
+void
+Dynamic_performer::DynamicQueue::set_volume (Real start_vol,
+                                             Real target_vol)
+{
+  const Real gain = target_vol - start_vol;
+  Real dur = 0; // duration of (de)crescendi processed so far
+  Real vol = start_vol;
+  for (vector<UnfinishedSpan>::iterator it = spans_.begin ();
+       it != spans_.end (); ++it)
+    {
+      const Real prev_vol = vol;
+      if (it->grow_dir_ != CENTER)
+        {
+          // grant this (de)crescendo its portion of the gain
+          dur += it->dynamic_->get_duration ();
+          vol = start_vol + gain * (dur / change_duration_);
+        }
+      it->dynamic_->set_volume (prev_vol, vol);
+    }
+}
+
+// Return a volume which is reasonably distant from the given start and end
+// volumes in the given direction, for use as a peak volume in a passage with a
+// crescendo followed by a decrescendo (or vice versa).  If the given volumes
+// are equal, the returned volume is a also reasonable target volume for a
+// single (de)crescendo.
+//
+// The given minimum and maximum volumes are the allowable dynamic range.
+Real
+Dynamic_performer::compute_departure_volume (Direction depart_dir,
+                                             Real start_vol,
+                                             Real end_vol,
+                                             Real min_vol,
+                                             Real max_vol)
+{
+  if (depart_dir == CENTER)
+    return start_vol;
+
+  // Try to find a volume that is a minimum distance from the starting and
+  // ending volumes.  If the endpoint volumes differ, the nearer one is padded
+  // less than the farther one.
+  //
+  // Example: mf < ... > p.  The legacy behavior was to use a 25% of the
+  // dynamic range for a (de)crescendo to an unspecified target, and this tries
+  // to preserve that, but is not possible to use a 25% change for both the
+  // crescendo and the decrescendo and meet the constraints of this example.
+  // The decrescendo is a greater change than the crescendo.  Believing that
+  // 25% is already more than enough for either, pad using 25% for the greater
+  // change and 7% for the lesser change.
+  //
+  // Idea: Use a context property or callback, e.g. the difference between two
+  // dynamics in dynamicAbsoluteVolumeFunction.  0.25 is the default difference
+  // between "p" and "ff". (Isn't that rather wide for this purpose?)  0.07 is
+  // the default difference between "mp" and "mf".
+  const Real far_padding = 0.25;
+  const Real near_padding = 0.07;
+
+  // If for some reason one of the endpoints is already below the supposed
+  // minimum or maximum, just accept it.
+  min_vol = min (min (min_vol, start_vol), end_vol);
+  max_vol = max (max (max_vol, start_vol), end_vol);
+
+  const Real vol_range = max_vol - min_vol;
+
+  const Real near_vol = minmax (depart_dir, start_vol, end_vol)
+                    + depart_dir * near_padding * vol_range;
+  const Real far_vol = minmax (-depart_dir, start_vol, end_vol)
+                   + depart_dir * far_padding * vol_range;
+  const Real depart_vol = minmax (depart_dir, near_vol, far_vol);
+  return max (min (depart_vol, max_vol), min_vol);
+}
+
+Real
+Dynamic_performer::finish_queued_spans (Real next_vol)
+{
+  if (depart_queue_.spans_.empty ())
+    {
+      programming_error ("no dynamic span to finish");
+      return next_vol;
+    }
+
+  const Real start_vol = depart_queue_.spans_.front ().dynamic_->get_start_volume ();
+
+  if (return_queue_.spans_.empty ())
+    {
+      Real depart_vol = next_vol;
+
+      // If the next dynamic is not specified or is inconsistent with the
+      // direction of growth, choose a reasonable target.
+      if ((next_vol < 0) || (depart_dir_ != sign (next_vol - start_vol)))
+        {
+          depart_vol = compute_departure_volume (depart_dir_,
+                                                 start_vol, start_vol,
+                                                 depart_queue_.min_target_vol_,
+                                                 depart_queue_.max_target_vol_);
+        }
+
+      depart_queue_.set_volume (start_vol, depart_vol);
+      depart_queue_.clear ();
+      return (next_vol >= 0) ? next_vol : depart_vol;
+    }
+  else
+    {
+      // If the next dynamic is not specified, return to the starting volume.
+      const Real return_vol = (next_vol >= 0) ? next_vol : start_vol;
+      Real depart_vol = compute_departure_volume (depart_dir_,
+                                                  start_vol, return_vol,
+                                                  depart_queue_.min_target_vol_,
+                                                  depart_queue_.max_target_vol_);
+      depart_queue_.set_volume (start_vol, depart_vol);
+      depart_queue_.clear ();
+      return_queue_.set_volume (depart_vol, return_vol);
+      return_queue_.clear ();
+      return return_vol;
+    }
 }
 
 Real
@@ -67,7 +331,8 @@ Dynamic_performer::equalize_volume (Real volume)
   SCM max = get_property ("midiMaximumVolume");
   if (scm_is_number (min) || scm_is_number (max))
     {
-      Interval iv (0, 1);
+      Interval iv (Audio_span_dynamic::MINIMUM_VOLUME,
+                   Audio_span_dynamic::MAXIMUM_VOLUME);
       if (scm_is_number (min))
         iv[MIN] = scm_to_double (min);
       if (scm_is_number (max))
@@ -97,125 +362,124 @@ Dynamic_performer::equalize_volume (Real volume)
           volume = iv[MIN] + iv.length () * volume;
         }
     }
-  return volume;
+  return std::max (std::min (volume, Audio_span_dynamic::MAXIMUM_VOLUME),
+                   Audio_span_dynamic::MINIMUM_VOLUME);
+}
+
+void
+Dynamic_performer::finalize ()
+{
+  if (open_span_.dynamic_)
+    close_and_enqueue_span ();
+  finish_queued_spans ();
+}
+
+Real
+Dynamic_performer::look_up_absolute_volume (SCM dynamicString,
+                                            Real defaultValue)
+{
+  SCM proc = get_property ("dynamicAbsoluteVolumeFunction");
+
+  SCM svolume = SCM_EOL;
+  if (ly_is_procedure (proc))
+    svolume = scm_call_1 (proc, dynamicString);
+
+  return robust_scm2double (svolume, defaultValue);
 }
 
 void
 Dynamic_performer::process_music ()
 {
-  if (span_events_[START] || span_events_[STOP] || script_event_)
+  Real volume = -1;
+
+  if (script_event_) // explicit dynamic
     {
-      // End the previous spanner when a new one begins or at an explicit stop
-      // or absolute dynamic.
-      finished_span_dynamic_ = span_dynamic_;
-      span_dynamic_ = 0;
+      volume = look_up_absolute_volume (script_event_->get_property ("text"),
+                                        Audio_span_dynamic::DEFAULT_VOLUME);
+      volume = equalize_volume (volume);
     }
-
-  if (span_events_[START])
+  else if (!open_span_.dynamic_) // first time only
     {
-      // Start of a dynamic spanner.  Create a new Audio_span_dynamic for
-      // collecting changes in dynamics within this spanner.
-      span_dynamic_ = new Audio_span_dynamic (equalize_volume (0.1), equalize_volume (1.0));
-      announce_element (Audio_element_info (span_dynamic_, span_events_[START]));
-
-      span_dynamic_->grow_dir_ = grow_dir_[START];
+      // Idea: look_up_absolute_volume (ly_symbol2scm ("mf")).
+      // It is likely to change regtests.
+      volume = equalize_volume (Audio_span_dynamic::DEFAULT_VOLUME);
     }
 
-  if (script_event_
-      || span_dynamic_
-      || finished_span_dynamic_)
+  // end the current span at relevant points
+  if (open_span_.dynamic_
+      && (span_events_[START] || span_events_[STOP] || script_event_))
     {
-      // New change in dynamics.
-      absolute_ = new Audio_dynamic ();
-
+      close_and_enqueue_span ();
       if (script_event_)
         {
-          // Explicit dynamic script event: determine the volume.
-          SCM proc = get_property ("dynamicAbsoluteVolumeFunction");
-
-          SCM svolume = SCM_EOL;
-          if (ly_is_procedure (proc))
-            {
-              // urg
-              svolume = scm_call_1 (proc, script_event_->get_property ("text"));
-            }
-
-          Real volume = robust_scm2double (svolume, 0.5);
-
-          last_volume_
-            = absolute_->volume_ = equalize_volume (volume);
+          state_ = STATE_INITIAL;
+          volume = finish_queued_spans (volume);
         }
-
-      Audio_element_info info (absolute_, script_event_);
-      announce_element (info);
     }
 
-  if (last_volume_ < 0)
+  // start a new span so that some dynamic is always in effect
+  if (!open_span_.dynamic_)
     {
-      absolute_ = new Audio_dynamic ();
-
-      last_volume_
-       = absolute_->volume_ = equalize_volume (0.71); // Backward compatible
+      if (drive_state_machine (next_grow_dir_))
+        volume = finish_queued_spans (volume);
 
-      Audio_element_info info (absolute_, script_event_);
-      announce_element (info);
-    }
+      // if not known by now, use a default volume for robustness
+      if (volume < 0)
+        volume = equalize_volume (Audio_span_dynamic::DEFAULT_VOLUME);
 
-  if (span_dynamic_)
-    span_dynamic_->add_absolute (absolute_);
+      Stream_event *cause
+      = span_events_[START] ? span_events_[START]
+        : script_event_ ? script_event_
+        : span_events_[STOP];
 
-  if (finished_span_dynamic_)
-    finished_span_dynamic_->add_absolute (absolute_);
+      open_span_.dynamic_ = new Audio_span_dynamic (now_mom (), volume);
+      open_span_.grow_dir_ = next_grow_dir_;
+      announce_element (Audio_element_info (open_span_.dynamic_, cause));
+    }
 }
 
 void
 Dynamic_performer::stop_translation_timestep ()
 {
-  if (finished_span_dynamic_)
-    {
-      finished_span_dynamic_->render ();
-      finished_span_dynamic_ = 0;
-    }
-
-  if (absolute_)
+  // link notes to the current dynamic
+  if (!open_span_.dynamic_)
+    programming_error("no current dynamic");
+  else
     {
-      if (absolute_->volume_ < 0)
-        {
-          absolute_->volume_ = last_volume_;
-        }
-      else
+      for (vector<Audio_note *>::const_iterator ni = notes_.begin ();
+           ni != notes_.end (); ++ni)
         {
-          last_volume_ = absolute_->volume_;
+          (*ni)->dynamic_ = open_span_.dynamic_;
         }
     }
+  notes_.clear ();
 
-  absolute_ = 0;
   script_event_ = 0;
   span_events_[LEFT]
-    = span_events_[RIGHT] = 0;
+  = span_events_[RIGHT] = 0;
+  next_grow_dir_ = CENTER;
 }
 
 void
 Dynamic_performer::listen_decrescendo (Stream_event *r)
 {
   Direction d = to_dir (r->get_property ("span-direction"));
-  span_events_[d] = r;
-  grow_dir_[d] = SMALLER;
+  if (ASSIGN_EVENT_ONCE (span_events_[d], r) && (d == START))
+    next_grow_dir_ = SMALLER;
 }
 
 void
 Dynamic_performer::listen_crescendo (Stream_event *r)
 {
   Direction d = to_dir (r->get_property ("span-direction"));
-  span_events_[d] = r;
-  grow_dir_[d] = BIGGER;
+  if (ASSIGN_EVENT_ONCE (span_events_[d], r) && (d == START))
+    next_grow_dir_ = BIGGER;
 }
 
 void
 Dynamic_performer::listen_absolute_dynamic (Stream_event *r)
 {
-  if (!script_event_)
-    script_event_ = r;
+  ASSIGN_EVENT_ONCE (script_event_, r);
 }
 
 void
index 7ce89d50158ff737e2e702609c1f7750422b84d6..eafa66288efdab93c9ab72bf49a3831c749c24b2 100644 (file)
@@ -333,7 +333,7 @@ Real
 Grob::relative_coordinate (Grob const *refp, Axis a) const
 {
   /* eaa - hmmm, should we do a programming_error() here? */
-  if ((this == NULL) || (refp == this))
+  if (refp == this)
     return 0.0;
 
   /* We catch PARENT_L_ == nil case with this, but we crash if we did
@@ -342,7 +342,8 @@ Grob::relative_coordinate (Grob const *refp, Axis a) const
   if (refp == dim_cache_[a].parent_)
     return off;
 
-  off += dim_cache_[a].parent_->relative_coordinate (refp, a);
+  if (dim_cache_[a].parent_ != NULL)
+    off += dim_cache_[a].parent_->relative_coordinate (refp, a);
 
   return off;
 }
index 8c41d18a526c19198687a73d6b63f8374615b1e1..f3a97a2949d9805f1edc480474f78262fe9c5f3e 100644 (file)
@@ -40,26 +40,32 @@ private:
   Audio_item &operator = (Audio_item const &);
 };
 
-class Audio_dynamic : public Audio_item
+// Audio_span_dynamic is open at the end of the interval, so the volume
+// grows/diminshes toward a target, but whether it reaches it depends on the
+// next Audio_span_dynamic in the performance.  For example, a crescendo
+// notated as mf < p is represented as [mf < x) [p ...) i.e. growth to some
+// volume louder than mf followed by an abrupt change to p.
+class Audio_span_dynamic : public Audio_element
 {
 public:
-  Audio_dynamic ();
+  static const Real MINIMUM_VOLUME;
+  static const Real MAXIMUM_VOLUME;
+  static const Real DEFAULT_VOLUME;
 
-  Real volume_;
-  bool silent_;
-};
+private:
+  Moment start_moment_;
+  Real start_volume_;
+  Real duration_; // = target moment - start moment
+  Real gain_; // = target volume - start volume
 
-class Audio_span_dynamic : public Audio_element
-{
 public:
-  Direction grow_dir_;
-  vector<Audio_dynamic *> dynamics_;
-  Real min_volume_;
-  Real max_volume_;
-
-  virtual void render ();
-  void add_absolute (Audio_dynamic *);
-  Audio_span_dynamic (Real min_volume, Real max_volume);
+  Moment get_start_moment () const { return start_moment_; }
+  Real get_start_volume () const { return start_volume_; }
+  Real get_duration () const { return duration_; }
+  void set_end_moment (Moment);
+  void set_volume (Real start, Real target);
+  Real get_volume (Moment) const;
+  Audio_span_dynamic (Moment mom, Real volume);
 };
 
 class Audio_key : public Audio_item
@@ -92,7 +98,7 @@ public:
   Pitch pitch_;
   Moment length_mom_;
   Pitch transposing_;
-  Audio_dynamic *dynamic_;
+  Audio_span_dynamic *dynamic_;
   int extra_velocity_;
 
   Audio_note *tied_;
@@ -138,36 +144,13 @@ public:
   int one_beat_;
 };
 
-class Audio_control_function_value_change : public Audio_item
+class Audio_control_change : public Audio_item
 {
 public:
-  // Supported control functions.
-  enum Control
-  {
-    BALANCE = 0, PAN_POSITION, EXPRESSION, REVERB_LEVEL, CHORUS_LEVEL,
-    // pseudo value for representing the size of the enum; must be kept last
-    NUM_CONTROLS
-  };
-
-  Audio_control_function_value_change (Control control, Real value);
-
-  // Information about a context property corresponding to a control function
-  // (name, the corresponding enumeration value, and the allowed range for the
-  // value of the context property).
-  struct Context_property
-  {
-    const char *name_;
-    Control control_;
-    Real range_min_;
-    Real range_max_;
-  };
-
-  // Mapping from supported control functions to the corresponding context
-  // properties.
-  static const Context_property context_properties_[];
+  Audio_control_change (int control, int value);
 
-  Control control_;
-  Real value_;
+  int control_;
+  int value_;
 };
 
 int moment_to_ticks (Moment);
index ee3946e0fd02921167b4a3f57d142bee0a64d017..6de69e16b92157352f6bd7955196ece89cd2cc93 100644 (file)
@@ -24,7 +24,7 @@
 
 class All_font_metrics;
 class Audio_column;
-class Audio_control_function_value_change;
+class Audio_control_change;
 class Audio_dynamic;
 class Audio_element;
 class Audio_instrument;
@@ -90,7 +90,8 @@ class Lyric_engraver;
 class Lyric_performer;
 class Mensural_ligature_engraver;
 class Midi_chunk;
-class Midi_control_function_value_change;
+class Midi_control_change;
+class Midi_control_change_announcer;
 class Midi_duration;
 class Midi_dynamic;
 class Midi_event;
diff --git a/lily/include/midi-cc-announcer.hh b/lily/include/midi-cc-announcer.hh
new file mode 100644 (file)
index 0000000..38cb93f
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+  This file is part of LilyPond, the GNU music typesetter.
+
+  Copyright (C) 2016 by Heikki Tauriainen <g034737@welho.com>.
+
+  LilyPond 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.
+
+  LilyPond 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 LilyPond.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef MIDI_CC_ANNOUNCER_HH
+#define MIDI_CC_ANNOUNCER_HH
+
+#include "input.hh"
+#include "performer.hh"
+#include "audio-item.hh"
+
+/* Base class for announcing MIDI control changes. */
+class Midi_control_change_announcer
+{
+public:
+  /* Constructor.  The optional parameter can be used to specify an Input
+     to use for relativizing warning messages about out-of-range values. */
+  Midi_control_change_announcer (Input *origin = 0);
+  virtual ~Midi_control_change_announcer ();
+
+  void announce_from_context_properties ();
+
+  /* Announces MIDI CC changes by creating new Audio_control_change events
+     from them, and calling 'do_announce' on each event.  Control change
+     events will be created from every supported MIDI context property for
+     which the 'get_property_value' function returns a value that is
+     compatible with the expected type of the context property's value. */
+  void announce_control_changes ();
+
+private:
+  virtual SCM get_property_value (const char *property_name) = 0;
+  virtual void do_announce (Audio_control_change *item) = 0;
+  void warn (const string &message);
+
+  Input *origin_;
+
+  struct Control_spec
+  {
+    const char *const context_property_name_;
+    const Real range_min_;
+    const Real range_max_;
+    const int msb_control_number_;
+    const int lsb_control_number_;
+  };
+
+  static const Control_spec controls_[];
+};
+
+#endif // MIDI_CC_ANNOUNCER_HH
index b593ce152739e7bf82eb904818213905cc8b7a67..57bb2d4da22eb4d7840b0b85b0ac87d9a07a61d8 100644 (file)
@@ -52,27 +52,27 @@ public:
   Midi_channel_item (Audio_item *ai);
 };
 
-/**
-   Midi control function value changes.
-*/
-class Midi_control_function_value_change : public Midi_channel_item
+class Midi_duration : public Midi_item
 {
 public:
-  DECLARE_CLASSNAME (Midi_control_function_value_change);
-  Midi_control_function_value_change (Audio_control_function_value_change *ai);
-  virtual ~Midi_control_function_value_change ();
+  Midi_duration (Real seconds_f);
+
   virtual string to_string () const;
-  Audio_control_function_value_change::Control control_;
-  Real value_;
+  Real seconds_;
 };
 
-class Midi_duration : public Midi_item
+/**
+   MIDI control change
+*/
+class Midi_control_change : public Midi_channel_item
 {
 public:
-  Midi_duration (Real seconds_f);
-
+  DECLARE_CLASSNAME (Midi_control_change);
+  Midi_control_change (Audio_control_change *ai);
+  virtual ~Midi_control_change ();
   virtual string to_string () const;
-  Real seconds_;
+
+  Audio_control_change *audio_;
 };
 
 /**
@@ -157,17 +157,6 @@ public:
   Audio_text *audio_;
 };
 
-class Midi_dynamic : public Midi_channel_item
-{
-public:
-  Midi_dynamic (Audio_dynamic *);
-  DECLARE_CLASSNAME (Midi_dynamic);
-
-  virtual string to_string () const;
-
-  Audio_dynamic *audio_;
-};
-
 class Midi_piano_pedal : public Midi_channel_item
 {
 public:
index 572e7ea02343d2cb2b53538288882ca35e640586..1885625ed91f6d5baca19f3e8f08781f8d35fbf0 100644 (file)
@@ -60,8 +60,8 @@ protected:
   void stop_translation_timestep ();
   void process_music ();
 
-  bool can_create_slur (const string&, vsize, vsize *, Stream_event *);
-  void create_slur (const string &spanner_id, Event_info evi, Grob *g_cause, Direction dir, bool left_broken);
+  bool can_create_slur (SCM, vsize, vsize *, Stream_event *);
+  void create_slur (SCM spanner_id, Event_info evi, Grob *g_cause, Direction dir, bool left_broken);
   bool try_to_end (Event_info evi);
 
   virtual void set_melisma (bool);
diff --git a/lily/midi-cc-announcer.cc b/lily/midi-cc-announcer.cc
new file mode 100644 (file)
index 0000000..7fb4ed6
--- /dev/null
@@ -0,0 +1,110 @@
+/*
+  This file is part of LilyPond, the GNU music typesetter.
+
+  Copyright (C) 2016 by Heikki Tauriainen <g034737@welho.com>.
+
+  LilyPond 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.
+
+  LilyPond 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 LilyPond.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "audio-item.hh"
+#include "input.hh"
+#include "international.hh"
+#include "libc-extension.hh"
+#include "midi-cc-announcer.hh"
+
+/*
+  Context properties for setting MIDI controls.  Each MIDI control
+  specification has the following components:
+    1. The name of the LilyPond context property used to change the value of
+       the MIDI control.
+    2. The lower bound for the numeric range of the LilyPond context property.
+    3. The upper bound for the numeric range of the LilyPond context property.
+    4. The MIDI control number for setting the most significant 7 bits of the
+       control value.
+    5. The MIDI control number for setting the least significant 7 bits of the
+       control value, if the control supports 14-bit ("fine") resolution.  If
+       the control supports only 7-bit ("coarse") resolution, the LSB control
+       number should be negative.
+*/
+const Midi_control_change_announcer::Control_spec
+Midi_control_change_announcer::controls_[]
+=
+{
+  { "midiBalance", -1.0, 1.0, 8, 40 },
+  { "midiPanPosition", -1.0, 1.0, 10, 42 },
+  { "midiExpression", 0.0, 1.0, 11, 43 },
+  { "midiReverbLevel", 0.0, 1.0, 91, -1 },
+  { "midiChorusLevel", 0.0, 1.0, 93, -1 },
+  // This element should be kept last in the array.
+  { 0, 0.0, 0.0, 0, 0 }
+};
+
+Midi_control_change_announcer::Midi_control_change_announcer (Input *origin)
+  : origin_ (origin)
+{
+}
+
+Midi_control_change_announcer::~Midi_control_change_announcer ()
+{
+}
+
+void Midi_control_change_announcer::announce_control_changes ()
+{
+  for (const Control_spec *spec = controls_; spec->context_property_name_;
+       ++spec)
+    {
+      SCM value = get_property_value (spec->context_property_name_);
+      if (!scm_is_number (value))
+        continue;
+      Real val = scm_to_double (value);
+      if (val >= spec->range_min_ && val <= spec->range_max_)
+        {
+          // Normalize the value to the 0.0 to 1.0 range.
+          val = ((val - spec->range_min_)
+                 / (spec->range_max_ - spec->range_min_));
+          // Transform the normalized context property value into a 14-bit or
+          // a 7-bit (non-negative) integer depending on the MIDI control's
+          // resolution.  For directional value changes, #CENTER will
+          // correspond to 0.5 exactly, and my_round rounds upwards when in
+          // case of doubt.  That means that center position will round to
+          // 0x40 or 0x2000 by a hair's breadth.
+          const Real full_fine_scale = 0x3FFF;
+          const Real full_coarse_scale = 0x7F;
+          const bool fine_resolution = (spec->lsb_control_number_ >= 0);
+          const int v = (int) (my_round (val * (fine_resolution
+                                                ? full_fine_scale
+                                                : full_coarse_scale)));
+          // Announce a control change for the most significant 7 bits of the
+          // control value (and, if the control supports fine resolution, for
+          // the least significant 7 bits as well).
+          do_announce (new Audio_control_change (spec->msb_control_number_,
+                                                 fine_resolution
+                                                 ? (v >> 7) : v));
+          if (fine_resolution)
+            do_announce (new Audio_control_change (spec->lsb_control_number_,
+                                                   v & 0x7F));
+        }
+      else
+        warn (_f ("ignoring out-of-range value change for MIDI property `%s'",
+                  spec->context_property_name_));
+    }
+}
+
+void Midi_control_change_announcer::warn (const string &message)
+{
+  if (origin_)
+    origin_->warning (message);
+  else
+    warning (message);
+}
diff --git a/lily/midi-cc-performer.cc b/lily/midi-cc-performer.cc
new file mode 100644 (file)
index 0000000..2aff5d0
--- /dev/null
@@ -0,0 +1,150 @@
+/*
+  This file is part of LilyPond, the GNU music typesetter.
+
+  Copyright (C) 2013--2016 by Heikki Tauriainen <g034737@welho.com>.
+  Adapted from performer implementations
+  Copyright (C) 1996--2015 Jan Nieuwenhuizen <janneke@gnu.org>,
+  Han-Wen Nienhyus <hanwen@xs4all.nl> and others.
+
+  LilyPond 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.
+
+  LilyPond 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 LilyPond.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "performer.hh"
+
+#include "audio-item.hh"
+#include "context.hh"
+#include "dispatcher.hh"
+#include "international.hh"
+#include "listener.hh"
+#include "midi-cc-announcer.hh"
+#include "stream-event.hh"
+
+#include "translator.icc"
+
+/**
+   MIDI control change performer.  Announces "set property" events on MIDI
+   context properties.
+*/
+class Midi_control_change_performer : public Performer
+{
+public:
+  TRANSLATOR_DECLARATIONS (Midi_control_change_performer);
+  void announce_control_change (SCM);
+  ~Midi_control_change_performer ();
+
+  void connect_to_context (Context *c);
+  void disconnect_from_context (Context *c);
+
+private:
+  class Control_change_announcer : public Midi_control_change_announcer
+  {
+  public:
+    Control_change_announcer (Midi_control_change_performer *p,
+                              Stream_event *ev, const string &s);
+
+    SCM get_property_value (const char *property_name);
+    void do_announce (Audio_control_change *item);
+
+  private:
+    Midi_control_change_performer *performer_;
+    Stream_event *event_;
+    string symbol_;
+  };
+};
+
+Midi_control_change_performer::Midi_control_change_performer ()
+{
+}
+
+Midi_control_change_performer::~Midi_control_change_performer ()
+{
+}
+
+void
+Midi_control_change_performer::connect_to_context (Context *c)
+{
+  c->events_below ()->
+  add_listener (GET_LISTENER (Midi_control_change_performer,
+                              announce_control_change),
+                ly_symbol2scm ("SetProperty"));
+}
+
+void
+Midi_control_change_performer::disconnect_from_context (Context *c)
+{
+  c->events_below ()->
+  remove_listener (GET_LISTENER (Midi_control_change_performer,
+                                 announce_control_change),
+                   ly_symbol2scm ("SetProperty"));
+}
+
+void
+Midi_control_change_performer::announce_control_change (SCM sev)
+{
+  Stream_event *ev = unsmob<Stream_event> (sev);
+  SCM sym = ev->get_property ("symbol");
+  if (!scm_is_symbol (sym))
+    return;
+
+  Control_change_announcer a (this, ev, ly_symbol2string (sym));
+  a.announce_control_changes ();
+}
+
+Midi_control_change_performer::Control_change_announcer::Control_change_announcer
+(Midi_control_change_performer *p, Stream_event *ev, const string &s)
+  : Midi_control_change_announcer (ev->origin ()),
+    performer_ (p),
+    event_ (ev),
+    symbol_ (s)
+{
+}
+
+SCM
+Midi_control_change_performer::Control_change_announcer::get_property_value
+(const char *property_name)
+{
+  return symbol_ == property_name ? event_->get_property ("value") : SCM_EOL;
+}
+
+void Midi_control_change_performer::Control_change_announcer::do_announce
+(Audio_control_change *item)
+{
+  performer_->announce_element (Audio_element_info (item, 0));
+}
+
+void
+Midi_control_change_performer::boot ()
+{
+
+}
+
+ADD_TRANSLATOR (Midi_control_change_performer,
+                /* doc */
+                "This performer listens to SetProperty events on context "
+                "properties for generating MIDI control changes and "
+                "prepares them for MIDI output.",
+
+                /* create */
+                "",
+
+                /* read */
+                "midiBalance "
+                "midiPanPosition "
+                "midiExpression "
+                "midiReverbLevel "
+                "midiChorusLevel ",
+
+                /* write */
+                ""
+               );
diff --git a/lily/midi-control-function-performer.cc b/lily/midi-control-function-performer.cc
deleted file mode 100644 (file)
index a112e6b..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
-  This file is part of LilyPond, the GNU music typesetter.
-
-  Copyright (C) 2013--2015 by Heikki Tauriainen <g034737@welho.com>.
-  Adapted from performer implementations
-  Copyright (C) 1996--2015 Jan Nieuwenhuizen <janneke@gnu.org>,
-  Han-Wen Nienhyus <hanwen@xs4all.nl> and others.
-
-  LilyPond 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.
-
-  LilyPond 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 LilyPond.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "performer.hh"
-
-#include "audio-item.hh"
-#include "context.hh"
-#include "dispatcher.hh"
-#include "international.hh"
-#include "listener.hh"
-#include "stream-event.hh"
-
-#include "translator.icc"
-
-/**
-   MIDI control function performer.  Announces "set property" events on MIDI
-   context properties.
-*/
-class Midi_control_function_performer : public Performer
-{
-public:
-  TRANSLATOR_DECLARATIONS (Midi_control_function_performer);
-  void announce_function_value_change (SCM);
-  ~Midi_control_function_performer ();
-
-  void connect_to_context (Context *c);
-  void disconnect_from_context (Context *c);
-};
-
-Midi_control_function_performer::Midi_control_function_performer ()
-{
-}
-
-Midi_control_function_performer::~Midi_control_function_performer ()
-{
-}
-
-void
-Midi_control_function_performer::connect_to_context (Context *c)
-{
-  c->events_below ()->
-    add_listener (GET_LISTENER (Midi_control_function_performer, announce_function_value_change),
-                  ly_symbol2scm ("SetProperty"));
-}
-
-void
-Midi_control_function_performer::disconnect_from_context (Context *c)
-{
-  c->events_below ()->
-    remove_listener (GET_LISTENER (Midi_control_function_performer, announce_function_value_change),
-                     ly_symbol2scm ("SetProperty"));
-}
-
-void
-Midi_control_function_performer::announce_function_value_change (SCM sev)
-{
-  Stream_event *ev = unsmob<Stream_event> (sev);
-  SCM sym = ev->get_property ("symbol");
-  if (!scm_is_symbol (sym))
-    return;
-
-  // Search for a matching context property; if found, check that the value
-  // of the property is within the allowed range, and announce a possible
-  // change in the value of the corresponding control function.
-  string symbol = ly_symbol2string (sym);
-  for (const Audio_control_function_value_change::Context_property *p
-         = Audio_control_function_value_change::context_properties_;
-       p->name_; ++p)
-    {
-      if (symbol == p->name_)
-        {
-          SCM value = ev->get_property ("value");
-          if (scm_is_number (value))
-            {
-              Real val = scm_to_double (value);
-              if (val >= p->range_min_ && val <= p->range_max_)
-                {
-                  // Normalize the value to the 0.0 to 1.0 range.
-                  val = ((val - p->range_min_)
-                         / (p->range_max_ - p->range_min_));
-                  Audio_control_function_value_change *item
-                    = new Audio_control_function_value_change (p->control_,
-                                                               val);
-                  announce_element (Audio_element_info (item, 0));
-                }
-              else
-                ev->origin ()->
-                  warning (_f ("ignoring out-of-range value change for MIDI "
-                               "property `%s'",
-                               p->name_));
-            }
-          break;
-        }
-    }
-}
-
-void
-Midi_control_function_performer::boot ()
-{
-
-}
-
-ADD_TRANSLATOR (Midi_control_function_performer,
-                /* doc */
-                "",
-
-                /* create */
-                "",
-
-                /* read */
-                "midiBalance "
-                "midiPanPosition "
-                "midiExpression "
-                "midiReverbLevel "
-                "midiChorusLevel ",
-
-                /* write */
-                ""
-               );
index 33dd9f11bde71fedb14e67b0174fc4b0e277fc1a..ba29ba0ba59264a2d51682489a34f3e1300eb7db 100644 (file)
@@ -19,6 +19,7 @@
 
 #include "midi-item.hh"
 
+#include "audio-column.hh"
 #include "duration.hh"
 #include "international.hh"
 #include "libc-extension.hh"
@@ -42,8 +43,6 @@ Midi_item::get_midi (Audio_item *a)
     return i->str_.length () ? new Midi_instrument (i) : 0;
   else if (Audio_note *i = dynamic_cast<Audio_note *> (a))
     return new Midi_note (i);
-  else if (Audio_dynamic *i = dynamic_cast<Audio_dynamic *> (a))
-    return new Midi_dynamic (i);
   else if (Audio_piano_pedal *i = dynamic_cast<Audio_piano_pedal *> (a))
     return new Midi_piano_pedal (i);
   else if (Audio_tempo *i = dynamic_cast<Audio_tempo *> (a))
@@ -52,9 +51,8 @@ Midi_item::get_midi (Audio_item *a)
     return new Midi_time_signature (i);
   else if (Audio_text *i = dynamic_cast<Audio_text *> (a))
     return new Midi_text (i);
-  else if (Audio_control_function_value_change *i
-           = dynamic_cast<Audio_control_function_value_change *> (a))
-    return new Midi_control_function_value_change (i);
+  else if (Audio_control_change *i = dynamic_cast<Audio_control_change *> (a))
+    return new Midi_control_change (i);
   else
     assert (0);
 
@@ -106,9 +104,9 @@ Midi_channel_item::Midi_channel_item (Audio_item *ai)
 {
 }
 
-Midi_control_function_value_change
-::Midi_control_function_value_change (Audio_control_function_value_change *ai)
-  : Midi_channel_item (ai), control_ (ai->control_), value_ (ai->value_)
+Midi_control_change::Midi_control_change (Audio_control_change *ai)
+  : Midi_channel_item (ai),
+    audio_ (ai)
 {
 }
 
@@ -120,7 +118,7 @@ Midi_channel_item::~Midi_channel_item ()
 {
 }
 
-Midi_control_function_value_change::~Midi_control_function_value_change ()
+Midi_control_change::~Midi_control_change ()
 {
 }
 
@@ -193,8 +191,8 @@ Midi_time_signature::to_string () const
 Midi_note::Midi_note (Audio_note *a)
   : Midi_channel_item (a),
     audio_ (a),
-    dynamic_byte_ (min (max (Byte ((a->dynamic_ && a->dynamic_->volume_ >= 0
-                                    ? a->dynamic_->volume_ * 0x7f : 0x5a)
+    dynamic_byte_ (min (max (Byte ((a->dynamic_
+                                    ? a->dynamic_->get_volume (a->audio_column_->when ()) * 0x7f : 0x5a)
                                    + a->extra_velocity_),
                              Byte (0)), Byte (0x7f)))
 {
@@ -275,40 +273,6 @@ Midi_note_off::to_string () const
   return str;
 }
 
-Midi_dynamic::Midi_dynamic (Audio_dynamic *a)
-  : Midi_channel_item (a),
-    audio_ (a)
-{
-}
-
-string
-Midi_dynamic::to_string () const
-{
-  Byte status_byte = (char) (0xB0 + channel_);
-  string str = ::to_string ((char)status_byte);
-
-  /*
-    Main volume controller (per channel):
-    07 MSB
-    27 LSB
-  */
-  static Real const full_scale = 127;
-
-  int volume = (int) (audio_->volume_ * full_scale);
-  if (volume <= 0)
-    volume = 1;
-  if (volume > full_scale)
-    volume = (int)full_scale;
-
-  int const volume_default = 100;
-  if (audio_->volume_ < 0 || audio_->silent_)
-    volume = volume_default;
-
-  str += ::to_string ((char)0x07);
-  str += ::to_string ((char)volume);
-  return str;
-}
-
 Midi_piano_pedal::Midi_piano_pedal (Audio_piano_pedal *a)
   : Midi_channel_item (a),
     audio_ (a)
@@ -363,63 +327,12 @@ Midi_text::to_string () const
 }
 
 string
-Midi_control_function_value_change::to_string () const
+Midi_control_change::to_string () const
 {
-  // MIDI control function information.  A MIDI control function may have one
-  // or two assigned control numbers depending on whether it supports coarse
-  // (7-bit) or fine (14-bit) resolution.  If the control function supports
-  // fine resolution, the first (respectively, second) member of the structure
-  // represents the control number for setting the most (least) significant 7
-  // bits of the control function's value.
-  struct Control_function
-  {
-    int msb_control_number_;
-    int lsb_control_number_;
-  };
-
-  // Mapping from supported control functions (enumeration values defined in
-  // Audio_controller_value_change::Control) to the corresponding MIDI control
-  // numbers.
-  static const Control_function control_functions[] =
-    {
-      // When adding support for new control functions, please note the
-      // following:
-      // - The order of the control number definitions should be kept
-      //   consistent with the order of the enumeration values defined in
-      //   Audio_control_function_value_change::Control.
-      // - If the control function has only coarse resolution, the function's
-      //   control number should be stored in the MSB member of the array
-      //   element, and the LSB member should be set to a negative value.
-
-      {  8, 40 }, // balance
-      { 10, 42 }, // pan position
-      { 11, 43 }, // expression
-      { 91, -1 }, // reverb level (only coarse resolution available)
-      { 93, -1 }  // chorus level (only coarse resolution available)
-    };
-
-  string str;
-  const Control_function *control_function = &control_functions[control_];
-  static const Real full_fine_scale = 0x3FFF;
-  static const Real full_coarse_scale = 0x7F;
-  bool fine_resolution = (control_function->lsb_control_number_ >= 0);
-  // value_ is in range [0.0 .. 1.0].  For directional value ranges,
-  // #CENTER will correspond to 0.5 exactly, and my_round rounds
-  // upwards when in case of doubt.  That means that center position
-  // will round to 0x40 or 0x2000 by a hair's breadth.
-  int value = (int) my_round (value_ * (fine_resolution ?
-                                        full_fine_scale : full_coarse_scale));
   Byte status_byte = (char) (0xB0 + channel_);
-  str += ::to_string ((char)status_byte);
-  str += ::to_string ((char)(control_function->msb_control_number_));
-  str += ::to_string ((char)(fine_resolution ? (value >> 7) : value));
-  if (fine_resolution)
-    {
-      str += ::to_string ((char)0x00);
-      str += ::to_string ((char)status_byte);
-      str += ::to_string ((char)(control_function->lsb_control_number_));
-      str += ::to_string ((char)(value & 0x7F));
-    }
+  string str = ::to_string ((char)status_byte);
+  str += ::to_string ((char) (audio_->control_));
+  str += ::to_string ((char) (audio_->value_));
   return str;
 }
 
index bc6c93dc56344f0a5a8b3b96078dfcdf0ac6d7c0..d9765c681450931fe85acca5c81213a90a153001 100644 (file)
@@ -89,8 +89,9 @@ Midi_walker::do_start_note (Midi_note *note)
                         Real (384 * 4)) + now_ticks;
   for (vsize i = 0; i < stop_note_queue.size (); i++)
     {
-      /* if this pitch already in queue */
-      if (stop_note_queue[i].val->get_semitone_pitch ()
+      /* if this pitch already in queue, and is not already ignored */
+      if (!stop_note_queue[i].ignore_ &&
+          stop_note_queue[i].val->get_semitone_pitch ()
           == note->get_semitone_pitch ())
         {
           int queued_ticks
index 7a0fa2d3c3389484cb94f03c6f798f0a1e6b866c..370d6e1c1f011400f0b8a8763083a0763e1a21f3 100644 (file)
@@ -37,15 +37,12 @@ protected:
   void stop_translation_timestep ();
 };
 
+// We only run this in the Score context, so all events are likely to
+// find a target
 void
 Output_property_engraver::listen_apply_output (Stream_event *ev)
 {
-  /*
-    UGH. Only swallow the output property event in the context
-    it was intended for. This is inelegant but not inefficient.
-  */
-  if (context ()->is_alias (ev->get_property ("context-type")))
-    props_.push_back (ev);
+  props_.push_back (ev);
 }
 
 void
@@ -59,11 +56,16 @@ Output_property_engraver::acknowledge_grob (Grob_info inf)
       if (scm_is_symbol (grob)
           && ly_symbol2string (grob) != inf.grob ()->name ())
         continue;
+      SCM typ = o->get_property ("context-type");
       SCM proc = o->get_property ("procedure");
-      scm_call_3 (proc,
-                 inf.grob ()->self_scm (),
-                 d->self_scm (), 
-                 context ()->self_scm ());
+      for (Context *c = d; c; c = c->get_parent_context ())
+        {
+          if (c->is_alias (typ))
+            scm_call_3 (proc,
+                        inf.grob ()->self_scm (),
+                        d->self_scm (),
+                        c->self_scm ());
+        }
     }
 }
 
index 52fe450b7d8c3848f87796d30469ac8bcb0b51bc..83e95491c292f82fb79d4a3439c0947806d86bc5 100644 (file)
@@ -229,7 +229,7 @@ static Music *make_music_with_input (SCM name, Input where);
 SCM check_scheme_arg (Lily_parser *parser, Input loc,
                      SCM arg, SCM args, SCM pred, SCM disp = SCM_UNDEFINED);
 SCM make_music_from_simple (Lily_parser *parser, Input loc, SCM pitch);
-SCM loc_on_music (Lily_parser *parser, Input loc, SCM arg);
+SCM loc_on_copy (Lily_parser *parser, Input loc, SCM arg);
 SCM make_chord_elements (Input loc, SCM pitch, SCM dur, SCM modification_list);
 SCM make_chord_step (SCM step, Rational alter);
 SCM make_simple_markup (SCM a);
@@ -346,7 +346,6 @@ If we give names, Bison complains.
 %token BOOK_IDENTIFIER
 %token CHORD_MODIFIER
 %token CHORD_REPETITION
-%token CONTEXT_MOD_IDENTIFIER
 %token DRUM_PITCH
  /* Artificial token for durations in argument lists */
 %token DURATION_ARG
@@ -501,8 +500,8 @@ lookup:
        LOOKUP_IDENTIFIER
        | LOOKUP_IDENTIFIER '.' symbol_list_rev
        {
-               $$ = loc_on_music (parser, @$,
-                                  nested_property ($1, scm_reverse_x ($3, SCM_EOL)));
+               $$ = loc_on_copy (parser, @$,
+                                 nested_property ($1, scm_reverse_x ($3, SCM_EOL)));
        }
        ;
 
@@ -1494,14 +1493,6 @@ context_modification:
                 parser->lexer_->pop_state ();
                 $$ = $4;
         }
-        | WITH CONTEXT_MOD_IDENTIFIER
-        {
-                $$ = $2;
-        }
-        | CONTEXT_MOD_IDENTIFIER
-        {
-                $$ = $1;
-        }
        | WITH context_modification_arg
        {
                if (unsmob<Music> ($2)) {
@@ -1511,7 +1502,10 @@ context_modification:
                if (unsmob<Context_mod> ($2))
                        $$ = $2;
                else {
-                       parser->parser_error (@2, _ ("not a context mod"));
+                       // let's permit \with #*unspecified* to go for
+                       // an empty context mod
+                       if (!scm_is_eq ($2, SCM_UNSPECIFIED))
+                               parser->parser_error (@2, _ ("not a context mod"));
                        $$ = Context_mod ().smobbed_copy ();
                }
        }
@@ -1564,24 +1558,16 @@ context_mod_list:
                if (!SCM_UNBNDP ($2))
                        unsmob<Context_mod> ($1)->add_context_mod ($2);
         }
-        | context_mod_list CONTEXT_MOD_IDENTIFIER {
-                 Context_mod *md = unsmob<Context_mod> ($2);
-                 if (md)
-                     unsmob<Context_mod> ($1)->add_context_mods (md->get_mods ());
-        }
        | context_mod_list context_mod_arg {
-               if (scm_is_eq ($2, SCM_UNSPECIFIED))
-                       ;
-               else if (unsmob<Music> ($2)) {
+               if (unsmob<Music> ($2)) {
                        SCM proc = parser->lexer_->lookup_identifier ("context-mod-music-handler");
                        $2 = scm_call_1 (proc, $2);
                }
                if (unsmob<Context_mod> ($2))
                        unsmob<Context_mod> ($$)->add_context_mods
                                (unsmob<Context_mod> ($2)->get_mods ());
-               else {
+               else if (!scm_is_eq ($2, SCM_UNSPECIFIED))
                        parser->parser_error (@2, _ ("not a context mod"));
-               }
         }
         ;
 
@@ -2006,7 +1992,7 @@ function_arglist_backup:
                                $$ = scm_cons ($$, $3);
                        else
                        {
-                               $$ = scm_cons (loc_on_music (parser, @3, $1), $3);
+                               $$ = scm_cons (loc_on_copy (parser, @3, $1), $3);
                                MYBACKUP (SCM_ARG, $4, @4);
                        }
                }
@@ -2017,7 +2003,7 @@ function_arglist_backup:
                {
                        $$ = scm_cons ($4, $3);
                } else {
-                       $$ = scm_cons (loc_on_music (parser, @3, $1), $3);
+                       $$ = scm_cons (loc_on_copy (parser, @3, $1), $3);
                        MYBACKUP (EVENT_IDENTIFIER, $4, @4);
                }
        }
@@ -2033,7 +2019,7 @@ function_arglist_backup:
                } else if (scm_is_true (scm_call_1 ($2, $4)))
                        $$ = scm_cons ($4, $3);
                else {
-                       $$ = scm_cons (loc_on_music (parser, @3, $1), $3);
+                       $$ = scm_cons (loc_on_copy (parser, @3, $1), $3);
                        MYBACKUP (PITCH_IDENTIFIER, $4, @4);
                }
        }
@@ -2049,7 +2035,7 @@ function_arglist_backup:
                } else if (scm_is_true (scm_call_1 ($2, $4)))
                        $$ = scm_cons ($4, $3);
                else {
-                       $$ = scm_cons (loc_on_music (parser, @3, $1), $3);
+                       $$ = scm_cons (loc_on_copy (parser, @3, $1), $3);
                        MYBACKUP (TONICNAME_PITCH, $4, @4);
                }
        }
@@ -2058,7 +2044,7 @@ function_arglist_backup:
                if (scm_is_true (scm_call_1 ($2, $4)))
                        $$ = scm_cons ($4, $3);
                else {
-                       $$ = scm_cons (loc_on_music (parser, @3, $1), $3);
+                       $$ = scm_cons (loc_on_copy (parser, @3, $1), $3);
                        MYBACKUP (SCM_IDENTIFIER, $4, @4);
                }
        }
@@ -2080,11 +2066,11 @@ function_arglist_backup:
                                          ($2, make_music_from_simple (parser, @4, d))))
                                        MYREPARSE (@4, $2, DURATION_ARG, d);
                                else {
-                                       $$ = scm_cons (loc_on_music (parser, @3, $1), $3);
+                                       $$ = scm_cons (loc_on_copy (parser, @3, $1), $3);
                                        MYBACKUP (UNSIGNED, $4, @4);
                                }
                        } else {
-                               $$ = scm_cons (loc_on_music (parser, @3, $1), $3);
+                               $$ = scm_cons (loc_on_copy (parser, @3, $1), $3);
                                MYBACKUP (UNSIGNED, $4, @4);
                        }
                }
@@ -2096,7 +2082,7 @@ function_arglist_backup:
                        $$ = $3;
                        MYREPARSE (@4, $2, REAL, $4);
                } else {
-                       $$ = scm_cons (loc_on_music (parser, @3, $1), $3);
+                       $$ = scm_cons (loc_on_copy (parser, @3, $1), $3);
                        MYBACKUP (REAL, $4, @4);
                }
        }
@@ -2106,7 +2092,7 @@ function_arglist_backup:
                {
                        $$ = scm_cons ($4, $3);
                } else {
-                       $$ = scm_cons (loc_on_music (parser, @3, $1), $3);
+                       $$ = scm_cons (loc_on_copy (parser, @3, $1), $3);
                        MYBACKUP (NUMBER_IDENTIFIER, $4, @4);
                }
        }
@@ -2123,7 +2109,7 @@ function_arglist_backup:
                        if (scm_is_true (scm_call_1 ($2, $$)))
                                $$ = scm_cons ($$, $3);
                        else {
-                               $$ = scm_cons (loc_on_music (parser, @3, $1), $3);
+                               $$ = scm_cons (loc_on_copy (parser, @3, $1), $3);
                                MYBACKUP (UNSIGNED, $5, @5);
                                parser->lexer_->push_extra_token (@4, '-');
                        }
@@ -2136,7 +2122,7 @@ function_arglist_backup:
                        MYREPARSE (@5, $2, REAL, n);
                        $$ = $3;
                } else {
-                       $$ = scm_cons (loc_on_music (parser, @3, $1), $3);
+                       $$ = scm_cons (loc_on_copy (parser, @3, $1), $3);
                        MYBACKUP (REAL, n, @5);
                }
        }
@@ -2146,7 +2132,7 @@ function_arglist_backup:
                if (scm_is_true (scm_call_1 ($2, n))) {
                        $$ = scm_cons (n, $3);
                } else {
-                       $$ = scm_cons (loc_on_music (parser, @3, $1), $3);
+                       $$ = scm_cons (loc_on_copy (parser, @3, $1), $3);
                        MYBACKUP (NUMBER_IDENTIFIER, n, @5);
                }
        }
@@ -2160,7 +2146,7 @@ function_arglist_backup:
                          ($2, make_music_from_simple (parser, @4, $4))))
                        MYREPARSE (@4, $2, DURATION_ARG, $4);
                else {
-                       $$ = scm_cons (loc_on_music (parser, @3, $1), $3);
+                       $$ = scm_cons (loc_on_copy (parser, @3, $1), $3);
                        MYBACKUP (DURATION_IDENTIFIER, $4, @4);
                }
        }
@@ -2175,7 +2161,7 @@ function_arglist_backup:
                        else
                                $$ = scm_cons (res, $3);
                else {
-                       $$ = scm_cons (loc_on_music (parser, @3, $1), $3);
+                       $$ = scm_cons (loc_on_copy (parser, @3, $1), $3);
                        MYBACKUP (SCM_IDENTIFIER, $4, @4);
                }
        }
@@ -2190,7 +2176,7 @@ function_arglist_backup:
                        else
                                $$ = scm_cons (res, $3);
                else {
-                       $$ = scm_cons (loc_on_music (parser, @3, $1), $3);
+                       $$ = scm_cons (loc_on_copy (parser, @3, $1), $3);
                        MYBACKUP (STRING, $4, @4);
                }
        }
@@ -2229,7 +2215,7 @@ function_arglist:
        function_arglist_nonbackup
        | EXPECT_OPTIONAL EXPECT_SCM function_arglist_skip_nonbackup DEFAULT
        {
-               $$ = scm_cons (loc_on_music (parser, @4, $1), $3);
+               $$ = scm_cons (loc_on_copy (parser, @4, $1), $3);
        }
        ;
 
@@ -2237,7 +2223,7 @@ function_arglist_skip_nonbackup:
        function_arglist_nonbackup
        | EXPECT_OPTIONAL EXPECT_SCM function_arglist_skip_nonbackup
        {
-               $$ = scm_cons (loc_on_music (parser, @3, $1), $3);
+               $$ = scm_cons (loc_on_copy (parser, @3, $1), $3);
        }
        ;
 
@@ -2497,7 +2483,7 @@ function_arglist_optional:
        function_arglist_backup
        | EXPECT_OPTIONAL EXPECT_SCM function_arglist_skip_backup DEFAULT
        {
-               $$ = scm_cons (loc_on_music (parser, @4, $1), $3);
+               $$ = scm_cons (loc_on_copy (parser, @4, $1), $3);
        }
        | function_arglist_skip_backup BACKUP
        ;
@@ -2506,7 +2492,7 @@ function_arglist_skip_backup:
        function_arglist_backup
        | EXPECT_OPTIONAL EXPECT_SCM function_arglist_skip_backup
        {
-               $$ = scm_cons (loc_on_music (parser, @3, $1), $3);
+               $$ = scm_cons (loc_on_copy (parser, @3, $1), $3);
        }
        ;
 
@@ -2956,15 +2942,11 @@ event_chord:
                }
        } %prec ':'
        | CHORD_REPETITION optional_notemode_duration post_events {
-               Input i;
-               i.set_location (@1, @3);
-               $$ = MAKE_SYNTAX (repetition_chord, i,
+               $$ = MAKE_SYNTAX (repetition_chord, @$,
                                  $2, scm_reverse_x ($3, SCM_EOL));
        } %prec ':'
        | MULTI_MEASURE_REST optional_notemode_duration post_events {
-               Input i;
-               i.set_location (@1, @3);
-               $$ = MAKE_SYNTAX (multi_measure_rest, i, $2,
+               $$ = MAKE_SYNTAX (multi_measure_rest, @$, $2,
                                  scm_reverse_x ($3, SCM_EOL));
        } %prec ':'
        | tempo_event
@@ -4088,7 +4070,7 @@ Lily_lexer::try_special_identifiers (SCM *destination, SCM sid)
                return SCM_IDENTIFIER;
         } else if (unsmob<Context_mod> (sid)) {
                 *destination = unsmob<Context_mod> (sid)->smobbed_copy ();
-                return CONTEXT_MOD_IDENTIFIER;
+                return SCM_IDENTIFIER;
        } else if (Music *mus = unsmob<Music> (sid)) {
                mus = mus->clone ();
                *destination = mus->self_scm ();
@@ -4164,7 +4146,7 @@ SCM check_scheme_arg (Lily_parser *parser, Input loc,
        return args;
 }
 
-SCM loc_on_music (Lily_parser *parser, Input loc, SCM arg)
+SCM loc_on_copy (Lily_parser *parser, Input loc, SCM arg)
 {
        if (Music *m = unsmob<Music> (arg))
        {
@@ -4172,6 +4154,34 @@ SCM loc_on_music (Lily_parser *parser, Input loc, SCM arg)
                m->set_spot (parser->lexer_->override_input (loc));
                return m->unprotect ();
        }
+       if (Book *b = unsmob<Book> (arg))
+       {
+               b = b->clone ();
+               b->origin ()->set_spot (parser->lexer_->override_input (loc));
+               return b->unprotect ();
+       }
+       if (Context_def *cd = unsmob<Context_def> (arg))
+       {
+               cd = cd->clone ();
+               cd->origin ()->set_spot (parser->lexer_->override_input (loc));
+               return cd->unprotect ();
+       }
+       if (Output_def *od = unsmob<Output_def> (arg))
+       {
+               od = od->clone ();
+               od->input_origin_ = parser->lexer_->override_input (loc);
+               return od->unprotect ();
+       }
+       if (Score *s = unsmob<Score> (arg))
+       {
+               s = s->clone ();
+               s->origin ()->set_spot (parser->lexer_->override_input (loc));
+               return s->unprotect ();
+       }
+       if (Context_mod *cm = unsmob<Context_mod> (arg))
+       {
+               return cm->smobbed_copy ();
+       }
        return arg;
 }
 
index 1a06ca6422cd65a045e61ec9e692cbacde4b15d5..80ceb5f431fdf700dddc2000b95044ac9ff3f023 100644 (file)
@@ -189,14 +189,14 @@ Slur_engraver::finalize ()
 }
 
 void
-Slur_engraver::create_slur (const string &spanner_id, Event_info evi, Grob *g_cause, Direction dir, bool left_broken)
+Slur_engraver::create_slur (SCM spanner_id, Event_info evi, Grob *g_cause, Direction dir, bool left_broken)
 {
   Grob *ccc = left_broken
     ? unsmob<Grob> (get_property ("currentCommandColumn"))
     : 0; // efficiency
   SCM cause = evi.slur_ ? evi.slur_->self_scm () : g_cause->self_scm ();
   Spanner *slur = make_spanner (grob_symbol (), cause);
-  slur->set_property ("spanner-id", ly_string2scm (spanner_id));
+  slur->set_property ("spanner-id", spanner_id);
   if (dir)
     set_grob_direction (slur, dir);
   if (left_broken)
@@ -209,7 +209,7 @@ Slur_engraver::create_slur (const string &spanner_id, Event_info evi, Grob *g_ca
   {
     set_grob_direction (slur, DOWN);
     slur = make_spanner (grob_symbol (), cause);
-    slur->set_property ("spanner-id", ly_string2scm (spanner_id));
+    slur->set_property ("spanner-id", spanner_id);
     set_grob_direction (slur, UP);
     if (left_broken)
       slur->set_bound (LEFT, ccc);
@@ -221,7 +221,7 @@ Slur_engraver::create_slur (const string &spanner_id, Event_info evi, Grob *g_ca
 }
 
 bool
-Slur_engraver::can_create_slur (const string &id, vsize old_slurs, vsize *event_idx, Stream_event *ev)
+Slur_engraver::can_create_slur (SCM id, vsize old_slurs, vsize *event_idx, Stream_event *ev)
 {
   for (vsize j = slurs_.size (); j--;)
     {
@@ -229,7 +229,7 @@ Slur_engraver::can_create_slur (const string &id, vsize old_slurs, vsize *event_
       Direction updown = to_dir (ev->get_property ("direction"));
 
       // Check if we already have a slur with the same spanner-id.
-      if (id == robust_scm2string (slur->get_property ("spanner-id"), ""))
+      if (ly_is_equal (id, slur->get_property ("spanner-id")))
         {
           if (j < old_slurs)
             {
@@ -280,13 +280,13 @@ Slur_engraver::can_create_slur (const string &id, vsize old_slurs, vsize *event_
 bool
 Slur_engraver::try_to_end (Event_info evi)
 {
-  string id = robust_scm2string (evi.slur_->get_property ("spanner-id"), "");
+  SCM id = evi.slur_->get_property ("spanner-id");
 
   // Find the slurs that are ended with this event (by checking the spanner-id)
   bool ended = false;
   for (vsize j = slurs_.size (); j--;)
     {
-      if (id == robust_scm2string (slurs_[j]->get_property ("spanner-id"), ""))
+      if (ly_is_equal (id, slurs_[j]->get_property ("spanner-id")))
         {
           ended = true;
           end_slurs_.push_back (slurs_[j]);
@@ -305,16 +305,14 @@ Slur_engraver::process_music ()
 {
   for (vsize i = 0; i < stop_events_.size (); i++)
     {
-      string id = robust_scm2string
-        (stop_events_[i].slur_->get_property ("spanner-id"), "");
+      SCM id = stop_events_[i].slur_->get_property ("spanner-id");
       bool ended = try_to_end (stop_events_[i]);
       if (ended)
         {
           // Ignore redundant stop events for this id
           for (vsize j = stop_events_.size (); --j > i;)
             {
-              if (id == robust_scm2string
-                  (stop_events_[j].slur_->get_property ("spanner-id"), ""))
+              if (ly_is_equal (id, stop_events_[j].slur_->get_property ("spanner-id")))
                 stop_events_.erase (stop_events_.begin () + j);
             }
         }
@@ -326,7 +324,7 @@ Slur_engraver::process_music ()
   for (vsize i = start_events_.size (); i--;)
     {
       Stream_event *ev = start_events_[i].slur_;
-      string id = robust_scm2string (ev->get_property ("spanner-id"), "");
+      SCM id = ev->get_property ("spanner-id");
       Direction updown = to_dir (ev->get_property ("direction"));
 
       if (can_create_slur (id, old_slurs, &i, ev))
index 3a05cbd0e25213673aa5577c55c7eb7d3fe5feaf..592c6a7e016f4fd82e6be3d998318625dfb4fd42 100644 (file)
@@ -25,6 +25,7 @@
 #include "audio-staff.hh"
 #include "context.hh"
 #include "international.hh"
+#include "midi-cc-announcer.hh"
 #include "performer-group.hh"
 #include "warn.hh"
 #include "lily-imports.hh"
@@ -54,7 +55,22 @@ private:
   int get_channel (const string &instrument);
   Audio_staff *get_audio_staff (const string &voice);
   Audio_staff *new_audio_staff (const string &voice);
-  Audio_dynamic *get_dynamic (const string &voice);
+
+  class Midi_control_initializer : public Midi_control_change_announcer
+  {
+  public:
+    Midi_control_initializer (Staff_performer *performer,
+                              Audio_staff *audio_staff,
+                              int channel);
+
+    SCM get_property_value (const char *property_name);
+    void do_announce (Audio_control_change *item);
+
+  private:
+    Staff_performer *performer_;
+    Audio_staff *audio_staff_;
+    int channel_;
+  };
 
   string instrument_string_;
   int channel_;
@@ -62,10 +78,8 @@ private:
   Audio_text *instrument_name_;
   Audio_text *name_;
   Audio_tempo *tempo_;
-  map<string, deque<Audio_note *> > note_map_;
   map<string, Audio_staff *> staff_map_;
   map<string, int> channel_map_;
-  map<string, Audio_dynamic *> dynamic_map_;
   // Would prefer to have the following two items be
   // members of the containing class Performance,
   // so they can be reset for each new midi file output.
@@ -135,32 +149,9 @@ Staff_performer::new_audio_staff (const string &voice)
   staff_map_[voice] = audio_staff;
   if (!instrument_string_.empty ())
     set_instrument (channel_, voice);
-  // Set initial values (if any) for control functions.
-  for (const Audio_control_function_value_change::Context_property *p
-         = Audio_control_function_value_change::context_properties_;
-       p->name_; ++p)
-    {
-      SCM value = get_property (p->name_);
-      if (scm_is_number (value))
-        {
-          Real val = scm_to_double (value);
-          if (val >= p->range_min_ && val <= p->range_max_)
-            {
-              // Normalize the value to the 0.0 to 1.0 range.
-              val = ((val - p->range_min_)
-                     / (p->range_max_ - p->range_min_));
-              Audio_control_function_value_change *item
-                = new Audio_control_function_value_change (p->control_, val);
-              item->channel_ = channel_;
-              audio_staff->add_audio_item (item);
-              announce_element (Audio_element_info (item, 0));
-            }
-          else
-            warning (_f ("ignoring out-of-range value change for MIDI "
-                         "property `%s'",
-                         p->name_));
-        }
-    }
+  // Set initial values (if any) for MIDI controls.
+  Midi_control_initializer i (this, audio_staff, channel_);
+  i.announce_control_changes ();
   return audio_staff;
 }
 
@@ -184,15 +175,6 @@ Staff_performer::get_audio_staff (const string &voice)
   return new_audio_staff (voice);
 }
 
-Audio_dynamic *
-Staff_performer::get_dynamic (const string &voice)
-{
-  map<string, Audio_dynamic *>::const_iterator i = dynamic_map_.find (voice);
-  if (i != dynamic_map_.end ())
-    return i->second;
-  return 0;
-}
-
 void
 Staff_performer::process_music ()
 {
@@ -226,22 +208,6 @@ Staff_performer::stop_translation_timestep ()
   tempo_ = 0;
   instrument_name_ = 0;
   instrument_ = 0;
-  // For each voice with a note played in the current translation time step,
-  // check if the voice has an Audio_dynamic registered: if yes, apply this
-  // dynamic to every note played in the voice in the current translation time
-  // step.
-  for (map<string, deque<Audio_note *> >::iterator vi = note_map_.begin ();
-       vi != note_map_.end (); ++vi)
-    {
-      Audio_dynamic *d = get_dynamic (vi->first);
-      if (d)
-        {
-          for (deque<Audio_note *>::iterator ni = vi->second.begin ();
-               ni != vi->second.end (); ++ni)
-            (*ni)->dynamic_ = d;
-        }
-    }
-  note_map_.clear ();
 }
 
 void
@@ -316,47 +282,50 @@ Staff_performer::get_channel (const string &instrument)
 void
 Staff_performer::acknowledge_audio_element (Audio_element_info inf)
 {
-  if (Audio_item *ai = dynamic_cast<Audio_item *> (inf.elem_))
+  /* map each context (voice) to its own track */
+  Context *c = inf.origin_contexts (this)[0];
+  string voice;
+  if (c->is_alias (ly_symbol2scm ("Voice")))
+    voice = c->id_string ();
+  SCM channel_mapping = get_property ("midiChannelMapping");
+  string str = new_instrument_string ();
+  if (!scm_is_eq (channel_mapping, ly_symbol2scm ("instrument")))
+    channel_ = get_channel (voice);
+  else if (channel_ < 0 && str.empty ())
+    channel_ = get_channel (str);
+  if (str.length ())
     {
-      /* map each context (voice) to its own track */
-      Context *c = inf.origin_contexts (this)[0];
-      string voice;
-      if (c->is_alias (ly_symbol2scm ("Voice")))
-        voice = c->id_string ();
-      SCM channel_mapping = get_property ("midiChannelMapping");
-      string str = new_instrument_string ();
-      if (!scm_is_eq (channel_mapping, ly_symbol2scm ("instrument")))
-        channel_ = get_channel (voice);
-      else if (channel_ < 0 && str.empty ())
+      if (!scm_is_eq (channel_mapping, ly_symbol2scm ("voice")))
         channel_ = get_channel (str);
-      if (str.length ())
-        {
-          if (!scm_is_eq (channel_mapping, ly_symbol2scm ("voice")))
-            channel_ = get_channel (str);
-          set_instrument (channel_, voice);
-          set_instrument_name (voice);
-        }
+      set_instrument (channel_, voice);
+      set_instrument_name (voice);
+    }
+  Audio_staff *audio_staff = get_audio_staff (voice);
+  if (Audio_item *ai = dynamic_cast<Audio_item *> (inf.elem_))
+    {
       ai->channel_ = channel_;
-      Audio_staff *audio_staff = get_audio_staff (voice);
-      bool encode_dynamics_as_velocity_ = true;
-      if (encode_dynamics_as_velocity_)
-        {
-          if (Audio_note *n = dynamic_cast<Audio_note *> (inf.elem_))
-            {
-              // Keep track of the notes played in the current voice in this
-              // translation time step (for adjusting their dynamics later in
-              // stop_translation_timestep).
-              note_map_[voice].push_back (n);
-            }
-          else if (Audio_dynamic *d = dynamic_cast<Audio_dynamic *> (inf.elem_))
-            {
-              dynamic_map_[voice] = d;
-              // Output volume as velocity: skip Midi_dynamic output for the
-              // current element.
-              return;
-            }
-        }
       audio_staff->add_audio_item (ai);
     }
 }
 
+Staff_performer::Midi_control_initializer::Midi_control_initializer
+(Staff_performer *performer, Audio_staff *audio_staff, int channel)
+  : performer_ (performer),
+    audio_staff_ (audio_staff),
+    channel_ (channel)
+{
+}
+
+SCM Staff_performer::Midi_control_initializer::get_property_value
+(const char *property_name)
+{
+  return performer_->get_property (property_name);
+}
+
+void Staff_performer::Midi_control_initializer::do_announce
+(Audio_control_change *item)
+{
+  item->channel_ = channel_;
+  audio_staff_->add_audio_item (item);
+  performer_->announce_element (Audio_element_info (item, 0));
+}
index fe8e3b02a7f1dcea22cfc178686f7b329a4e95b1..5768d8b5f08482bd0f8d8ca24e88e65560bfb00c 100644 (file)
@@ -23,7 +23,7 @@ That's it.  For more information, visit http://lilypond.org .
 
 %}
 
-\version "2.19.45"  % necessary for upgrading to future LilyPond versions.
+\version "2.19.47"  % necessary for upgrading to future LilyPond versions.
 
 \header{
   title = "A scale in LilyPond"
index cb4128f17fc151222676a225450254fb4e18026b..0dae0bf064795892e9a1091ea2f0afe555df12be 100644 (file)
@@ -32,7 +32,7 @@ Good luck with LilyPond!  Happy engraving.
 
 %}
 
-\version "2.19.45"  % necessary for upgrading to future LilyPond versions.
+\version "2.19.47"  % necessary for upgrading to future LilyPond versions.
 
 \header{
   title = "A scale in LilyPond"
index 3637871a66a3c555f37be3f8b0dc5cf2fd01fd30..0b5b8f7f2aca05001672066225e5b62b6f64e884 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.19.19"
+\version "2.19.46"
 
 \context {
   \name "Global"
@@ -35,7 +35,6 @@
   \description "A context for displaying fret diagrams."
 
   \consists "Fretboard_engraver"
-  \consists "Output_property_engraver"
   \consists "Axis_group_engraver"
   \consists "Separating_line_group_engraver"
   \consists "Font_size_engraver"
@@ -54,7 +53,6 @@
   \type "Engraver_group"
   \name "Staff"
 
-  \consists "Output_property_engraver"
   \consists "Bar_engraver"
   \consists "Pure_from_neighbor_engraver"
   %% Bar_engraver must be first so default bars aren't overwritten
@@ -177,7 +175,6 @@ contained staves are not connected vertically."
   \override Stem.neutral-direction = #UP
   \override Beam.neutral-direction = #UP
 
-  \consists "Output_property_engraver"
   \consists "Font_size_engraver"
   \consists "Separating_line_group_engraver"
   \consists "Dot_column_engraver"
@@ -218,7 +215,6 @@ multiple voices on the same staff."
   \consists "Font_size_engraver"
 
   \consists "Pitched_trill_engraver"
-  \consists "Output_property_engraver"
   \consists "Arpeggio_engraver"
   \consists "Multi_measure_rest_engraver"
   \consists "Text_spanner_engraver"
@@ -371,7 +367,6 @@ together, never separately."
   \override DynamicText.extra-spacing-width = ##f
   \consists "Span_bar_stub_engraver"
   \consists "Span_arpeggio_engraver"
-  \consists "Output_property_engraver"
   systemStartDelimiter = #'SystemStartBracket
   %% explicitly set instrument, so it is not inherited from the parent
   instrumentName = #'()
@@ -433,7 +428,6 @@ it with a different one.  Often used with @code{\\stopStaff} and
   \type "Engraver_group"
   \name "Dynamics"
   \alias "Voice"
-  \consists "Output_property_engraver"
   \consists "Bar_engraver"
   \consists "Piano_pedal_engraver"
   \consists "Script_engraver"
@@ -535,7 +529,6 @@ printing of a single line of lyrics."
                                % \key, \transposition
   \description "Typesets chord names."
 
-  \consists "Output_property_engraver"
   \consists "Separating_line_group_engraver"
   \consists "Chord_name_engraver"
   \consists "Axis_group_engraver"
index 6fe32f49fbaf513055c94b2fa103d6cf368a23e5..a46111e4d91a2a62d36c6595b7a9e88da3047738 100644 (file)
@@ -1,7 +1,7 @@
 \version "2.17.6"
 
-startGraceSlur = #(make-music 'SlurEvent 'span-direction START 'spanner-id "grace")
-stopGraceSlur = #(make-music 'SlurEvent 'span-direction STOP 'spanner-id "grace")
+startGraceSlur = #(make-music 'SlurEvent 'span-direction START 'spanner-id 'grace)
+stopGraceSlur = #(make-music 'SlurEvent 'span-direction STOP 'spanner-id 'grace)
 
 
 startGraceMusic =  {
index a23d154fd814d7e1ebdfe4c2de03afb0ab0659d3..76c2ec64b882f079ec9fbf441076cfc30a305631 100644 (file)
@@ -56,12 +56,17 @@ addQuote =
    (add-quotable name music))
 
 %% keep these two together
-afterGraceFraction = #(cons 6 8)
+afterGraceFraction = 3/4
 afterGrace =
-#(define-music-function (main grace) (ly:music? ly:music?)
-   (_i "Create @var{grace} note(s) after a @var{main} music expression.")
+#(define-music-function (fraction main grace) ((fraction?) ly:music? ly:music?)
+   (_i "Create @var{grace} note(s) after a @var{main} music expression.
+
+The musical position of the grace expression is after a
+given fraction of the main note's duration has passed.  If
+@var{fraction} is not specified as first argument, it is taken from
+@code{afterGraceFraction} which has a default value of @code{3/4}.")
    (let ((main-length (ly:music-length main))
-         (fraction  (ly:parser-lookup 'afterGraceFraction)))
+         (fraction (or fraction (ly:parser-lookup 'afterGraceFraction))))
      (make-simultaneous-music
       (list
        main
@@ -71,10 +76,8 @@ afterGrace =
          (make-music 'SkipMusic
                      'duration (ly:make-duration
                                 0 0
-                                (* (ly:moment-main-numerator main-length)
-                                   (car fraction))
-                                (* (ly:moment-main-denominator main-length)
-                                   (cdr fraction))))
+                                (* (ly:moment-main main-length)
+                                   (/ (car fraction) (cdr fraction)))))
          (make-music 'GraceMusic
                      'element grace)))))))
 
@@ -1014,13 +1017,10 @@ creation.")
      (if p
          (make-music 'ApplyOutputEvent
                      'context-type (first p)
+                     'symbol (second p)
                      'procedure
                      (lambda (grob orig-context context)
-                       (if (equal?
-                            (cdr (assoc 'name (ly:grob-property grob 'meta)))
-                            (second p))
-                           (ly:grob-set-nested-property!
-                            grob (cddr p) value))))
+                       (ly:grob-set-nested-property! grob (cddr p) value)))
          (make-music 'Music))))
 
 
@@ -1551,7 +1551,12 @@ retrograde =
 #(define-music-function (music)
     (ly:music?)
     (_i "Return @var{music} in reverse order.")
-    (retrograde-music music))
+    (retrograde-music
+     (expand-repeat-notes!
+      (expand-repeat-chords!
+       (cons 'rhythmic-event
+             (ly:parser-lookup '$chord-repeat-events))
+       music))))
 
 revertTimeSignatureSettings =
 #(define-music-function
index 00c4bdf3dabcd3b64b4b07ac369acc627cbf78b5..644a0bd2d6cc0c83c1dce217b3f6d3c73b9f8a14 100644 (file)
@@ -31,7 +31,7 @@
 
   \consists "Staff_performer"
   \consists "Key_performer"
-  \consists "Midi_control_function_performer"
+  \consists "Midi_control_change_performer"
 }
 
 \context {
index 756a55579e377935ab3b7242db358a54eb499576..8d8a69444f8815af37d8080a75fdcf6a9a34688c 100644 (file)
@@ -1,18 +1,15 @@
 \version "2.19.29"
 
 "\\=" =
-#(define-event-function (id event) (number-or-string? ly:event?)
+#(define-event-function (id event) (key? ly:event?)
   (_i "This sets the @code{spanner-id} property of the following
-@var{event} to the given @var{id} (numbers will be converted to a
-string).  This can be used to tell LilyPond how to connect overlapping
+@var{event} to the given @var{id} (non-negative integer or symbol).
+This can be used to tell LilyPond how to connect overlapping
 or parallel slurs or phrasing slurs within a single @code{Voice}.
 @lilypond[quote,verbatim]
 \\fixed c' { c\\=1( d\\=2( e\\=1) f\\=2) }
 @end lilypond\n")
-  (set! (ly:music-property event 'spanner-id)
-       (if (number? id)
-           (number->string id)
-           id))
+  (set! (ly:music-property event 'spanner-id) id)
   event)
 
 startGroup = #(make-span-event 'NoteGroupingEvent START)
index 39e8943c2381ac8dd0d879bcfb723799861f17f4..90a2fe5b71e5e42e8d70e14b6c2a02a87b5a694a 100644 (file)
@@ -1 +1 @@
-See http://git.savannah.gnu.org/gitweb/?p=lilypond.git;a=log;h=refs/tags/release/2.19.45-1
+See http://git.savannah.gnu.org/gitweb/?p=lilypond.git;a=log;h=refs/tags/release/2.19.47-1
index 59c21c17d4b116a038b322107faca95480b04798..0a3bba837699e07af8c62cbc2e38deb838847b14 100644 (file)
@@ -1,32 +1,7 @@
-commit de765c2d8f941423e0e33ced19b1436e7643277a
+commit 753d6200e9ae51f0a98186478beff2d00d63a62b
+Merge: fc5b145 2e0077b
 Author: Phil Holmes <mail@philholmes.net>
-Date:   Fri Jul 8 13:58:06 2016 +0100
+Date:   Tue Aug 30 11:23:53 2016 +0100
 
-    Release: bump Welcome versions.
+    Update release/unstable with recent changes
 
-diff --git a/ly/Welcome-to-LilyPond-MacOS.ly b/ly/Welcome-to-LilyPond-MacOS.ly
-index 417b993..fe8e3b0 100644
---- a/ly/Welcome-to-LilyPond-MacOS.ly
-+++ b/ly/Welcome-to-LilyPond-MacOS.ly
-@@ -23,7 +23,7 @@ That's it.  For more information, visit http://lilypond.org .
- %}
--\version "2.19.44"  % necessary for upgrading to future LilyPond versions.
-+\version "2.19.45"  % necessary for upgrading to future LilyPond versions.
- \header{
-   title = "A scale in LilyPond"
-diff --git a/ly/Welcome_to_LilyPond.ly b/ly/Welcome_to_LilyPond.ly
-index 6e3e604..cb4128f 100644
---- a/ly/Welcome_to_LilyPond.ly
-+++ b/ly/Welcome_to_LilyPond.ly
-@@ -32,7 +32,7 @@ Good luck with LilyPond!  Happy engraving.
- %}
--\version "2.19.44"  % necessary for upgrading to future LilyPond versions.
-+\version "2.19.45"  % necessary for upgrading to future LilyPond versions.
- \header{
-   title = "A scale in LilyPond"
index 89819f371d52882e5b09f9fcca22863f3164d9e6..871624a989828db7800cb4ac49d35a04409be458 100644 (file)
--- a/po/ca.po
+++ b/po/ca.po
@@ -25,7 +25,7 @@ msgstr ""
 "Project-Id-Version: lilypond-2.19.26\n"
 "Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs\n"
 "POT-Creation-Date: 2015-08-27 10:48+0100\n"
-"PO-Revision-Date: 2015-11-11 22:27+0100\n"
+"PO-Revision-Date: 2016-07-04 11:27+0200\n"
 "Last-Translator: Walter Garcia-Fontes <walter.garcia@upf.edu>\n"
 "Language-Team: Catalan <ca@dodds.net>\n"
 "Language: ca\n"
@@ -1670,7 +1670,7 @@ msgstr "Altres llengües"
 #: website_post.py:133
 #, python-format
 msgid "About <a href=\"%s\">automatic language selection</a>."
-msgstr "Sobre <a href=\"%s\">selecció automàtica de llengua</a>."
+msgstr "Quant a la <a href=\"%s\">selecció automàtica de llengua</a>."
 
 #: getopt-long.cc:153
 #, c-format
index ae5cfd4108d8996e67d91acc19dad0e04d7417c0..965a48bf9215b8280a1145498e140538b1adada3 100644 (file)
@@ -6,10 +6,10 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: lilypond 2.19.45\n"
+"Project-Id-Version: lilypond 2.19.47\n"
 "Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu."
 "lilypond.bugs\n"
-"POT-Creation-Date: 2016-07-08 13:56+0100\n"
+"POT-Creation-Date: 2016-08-13 13:37+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -917,7 +917,7 @@ msgstr ""
 msgid "Encountered unprocessed marker %s\n"
 msgstr ""
 
-#: abc2ly.py:1389 convert-ly.py:85 lilypond-book.py:122 midi2ly.py:1046
+#: abc2ly.py:1389 convert-ly.py:85 lilypond-book.py:122 midi2ly.py:1052
 #, python-format
 msgid "%s [OPTION]... FILE"
 msgstr ""
@@ -930,16 +930,16 @@ msgid ""
 msgstr ""
 
 #: abc2ly.py:1398 convert-ly.py:92 etf2ly.py:1208 lilypond-book.py:231
-#: midi2ly.py:1097 musicxml2ly.py:2766 main.cc:184
+#: midi2ly.py:1103 musicxml2ly.py:2766 main.cc:184
 msgid "show version number and exit"
 msgstr ""
 
 #: abc2ly.py:1401 convert-ly.py:96 etf2ly.py:1204 lilypond-book.py:140
-#: midi2ly.py:1064 musicxml2ly.py:2747 main.cc:163
+#: midi2ly.py:1070 musicxml2ly.py:2747 main.cc:163
 msgid "show this help and exit"
 msgstr ""
 
-#: abc2ly.py:1404 etf2ly.py:1209 midi2ly.py:1073
+#: abc2ly.py:1404 etf2ly.py:1209 midi2ly.py:1079
 msgid "write output to FILE"
 msgstr ""
 
@@ -960,7 +960,7 @@ msgstr ""
 #. or if there is a LilyPond users list or forum in your language
 #. "Report bugs in English via %s or in YOUR_LANG via URI"
 #: abc2ly.py:1416 convert-ly.py:157 etf2ly.py:1218 lilypond-book.py:258
-#: midi2ly.py:1109 musicxml2ly.py:2909 main.cc:318
+#: midi2ly.py:1115 musicxml2ly.py:2909 main.cc:318
 #, c-format, python-format
 msgid "Report bugs via %s"
 msgstr ""
@@ -1042,7 +1042,7 @@ msgstr ""
 msgid "make a numbered backup [default: filename.ext~]"
 msgstr ""
 
-#: convert-ly.py:152 etf2ly.py:1212 lilypond-book.py:234 midi2ly.py:1098
+#: convert-ly.py:152 etf2ly.py:1212 lilypond-book.py:234 midi2ly.py:1104
 #: main.cc:186
 msgid "show warranty and copyright"
 msgstr ""
@@ -1101,7 +1101,7 @@ msgid ""
 "file.\n"
 msgstr ""
 
-#: etf2ly.py:1210 midi2ly.py:1069 midi2ly.py:1074 musicxml2ly.py:2859
+#: etf2ly.py:1210 midi2ly.py:1075 midi2ly.py:1080 musicxml2ly.py:2859
 #: main.cc:169 main.cc:181
 msgid "FILE"
 msgstr ""
@@ -1208,7 +1208,7 @@ msgstr ""
 msgid "write snippet output files with the same base name as their source file"
 msgstr ""
 
-#: lilypond-book.py:223 midi2ly.py:1092 musicxml2ly.py:2772
+#: lilypond-book.py:223 midi2ly.py:1098 musicxml2ly.py:2772
 msgid "be verbose"
 msgstr ""
 
@@ -1310,7 +1310,7 @@ msgstr ""
 msgid "warning: "
 msgstr ""
 
-#: midi2ly.py:92 midi2ly.py:1126
+#: midi2ly.py:92 midi2ly.py:1132
 msgid "error: "
 msgstr ""
 
@@ -1318,85 +1318,85 @@ msgstr ""
 msgid "Exiting... "
 msgstr ""
 
-#: midi2ly.py:834
+#: midi2ly.py:840
 msgid "found more than 5 voices on a staff, expect bad output"
 msgstr ""
 
-#: midi2ly.py:1034
+#: midi2ly.py:1040
 #, python-format
 msgid "%s output to `%s'..."
 msgstr ""
 
-#: midi2ly.py:1047
+#: midi2ly.py:1053
 #, python-format
 msgid "Convert %s to LilyPond input.\n"
 msgstr ""
 
-#: midi2ly.py:1052
+#: midi2ly.py:1058
 msgid "print absolute pitches"
 msgstr ""
 
-#: midi2ly.py:1054 midi2ly.py:1082
+#: midi2ly.py:1060 midi2ly.py:1088
 msgid "DUR"
 msgstr ""
 
-#: midi2ly.py:1055
+#: midi2ly.py:1061
 msgid "quantise note durations on DUR"
 msgstr ""
 
-#: midi2ly.py:1058
+#: midi2ly.py:1064
 msgid "debug printing"
 msgstr ""
 
-#: midi2ly.py:1061
+#: midi2ly.py:1067
 msgid "print explicit durations"
 msgstr ""
 
-#: midi2ly.py:1066
+#: midi2ly.py:1072
 msgid "prepend FILE to output"
 msgstr ""
 
-#: midi2ly.py:1070
+#: midi2ly.py:1076
 msgid "set key: ALT=+sharps|-flats; MINOR=1"
 msgstr ""
 
-#: midi2ly.py:1071
+#: midi2ly.py:1077
 msgid "ALT[:MINOR]"
 msgstr ""
 
-#: midi2ly.py:1076
+#: midi2ly.py:1082
 msgid "preview of first 4 bars"
 msgstr ""
 
-#: midi2ly.py:1080
+#: midi2ly.py:1086
 msgid "suppress progress messages and warnings about excess voices"
 msgstr ""
 
-#: midi2ly.py:1081
+#: midi2ly.py:1087
 msgid "quantise note starts on DUR"
 msgstr ""
 
-#: midi2ly.py:1085
+#: midi2ly.py:1091
 msgid "use s instead of r for rests"
 msgstr ""
 
-#: midi2ly.py:1087
+#: midi2ly.py:1093
 msgid "DUR*NUM/DEN"
 msgstr ""
 
-#: midi2ly.py:1090
+#: midi2ly.py:1096
 msgid "allow tuplet durations DUR*NUM/DEN"
 msgstr ""
 
-#: midi2ly.py:1100
+#: midi2ly.py:1106
 msgid "treat every text as a lyric"
 msgstr ""
 
-#: midi2ly.py:1103
+#: midi2ly.py:1109
 msgid "Examples"
 msgstr ""
 
-#: midi2ly.py:1127
+#: midi2ly.py:1133
 msgid "no files specified on command line."
 msgstr ""
 
@@ -1770,6 +1770,33 @@ msgstr ""
 msgid "no heads for arpeggio found?"
 msgstr ""
 
+#: audio-item.cc:139
+#, c-format
+msgid "end moment (%s) < start moment (%s)"
+msgstr ""
+
+#: audio-item.cc:153
+#, c-format
+msgid "invalid start volume: %f"
+msgstr ""
+
+#: audio-item.cc:159
+#, c-format
+msgid "invalid target volume: %f"
+msgstr ""
+
+#: audio-item.cc:174
+#, c-format
+msgid ""
+"asked to compute volume at %f for dynamic span of duration %f starting at %s"
+msgstr ""
+
+#: audio-item.cc:182
+#, c-format
+msgid ""
+"asked to compute volume at +%f for dynamic span of duration %f starting at %s"
+msgstr ""
+
 #: axis-group-engraver.cc:154
 msgid "Axis_group_engraver: vertical group already has a parent"
 msgstr ""
@@ -2080,7 +2107,7 @@ msgstr ""
 msgid "%d: %s"
 msgstr ""
 
-#: grob.cc:486
+#: grob.cc:487
 #, c-format
 msgid "ignored infinite %s-offset"
 msgstr ""
@@ -2517,17 +2544,17 @@ msgstr ""
 msgid "unexpected case fall-through"
 msgstr ""
 
-#: midi-control-function-performer.cc:107 staff-performer.cc:159
+#: midi-cc-announcer.cc:99
 #, c-format
 msgid "ignoring out-of-range value change for MIDI property `%s'"
 msgstr ""
 
-#: midi-item.cc:93
+#: midi-item.cc:91
 #, c-format
 msgid "no such MIDI instrument: `%s'"
 msgstr ""
 
-#: midi-item.cc:179
+#: midi-item.cc:177
 msgid "Time signature with more than 255 beats.  Truncating"
 msgstr ""
 
@@ -3075,11 +3102,11 @@ msgstr ""
 msgid "expected to read %d characters, got %d"
 msgstr ""
 
-#: staff-performer.cc:307
+#: staff-performer.cc:273
 msgid "MIDI channel wrapped around"
 msgstr ""
 
-#: staff-performer.cc:308
+#: staff-performer.cc:274
 msgid "remapping modulo 16"
 msgstr ""
 
@@ -3228,119 +3255,119 @@ msgstr ""
 msgid "giving up"
 msgstr ""
 
-#: parser.yy:483 parser.yy:650 parser.yy:989 parser.yy:1070 parser.yy:1306
+#: parser.yy:482 parser.yy:649 parser.yy:988 parser.yy:1069 parser.yy:1305
 msgid "bad expression type"
 msgstr ""
 
-#: parser.yy:902 parser.yy:1514 parser.yy:1583
+#: parser.yy:901 parser.yy:1508 parser.yy:1570
 msgid "not a context mod"
 msgstr ""
 
-#: parser.yy:983 parser.yy:1062 parser.yy:1214
+#: parser.yy:982 parser.yy:1061 parser.yy:1213
 msgid "need \\paper for paper block"
 msgstr ""
 
-#: parser.yy:1096
+#: parser.yy:1095
 msgid "Missing music in \\score"
 msgstr ""
 
-#: parser.yy:1133
+#: parser.yy:1132
 msgid "\\paper cannot be used in \\score, use \\layout instead"
 msgstr ""
 
-#: parser.yy:1184
+#: parser.yy:1183
 msgid "Spurious expression in \\score"
 msgstr ""
 
-#: parser.yy:1388
+#: parser.yy:1387
 msgid "music expected"
 msgstr ""
 
-#: parser.yy:1398 parser.yy:1432
+#: parser.yy:1397 parser.yy:1431
 msgid "unexpected post-event"
 msgstr ""
 
-#: parser.yy:1440
+#: parser.yy:1439
 msgid "Ignoring non-music expression"
 msgstr ""
 
-#: parser.yy:1763 parser.yy:1782
+#: parser.yy:1749 parser.yy:1768
 msgid "not a key"
 msgstr ""
 
-#: parser.yy:2642 parser.yy:2760 parser.yy:2773 parser.yy:2782
+#: parser.yy:2628 parser.yy:2746 parser.yy:2759 parser.yy:2768
 msgid "bad grob property path"
 msgstr ""
 
-#: parser.yy:2740
+#: parser.yy:2726
 msgid "only \\consists and \\remove take non-string argument."
 msgstr ""
 
-#: parser.yy:2801
+#: parser.yy:2787
 msgid "bad context property path"
 msgstr ""
 
-#: parser.yy:2886
+#: parser.yy:2872
 msgid "markup expected"
 msgstr ""
 
-#: parser.yy:2898
+#: parser.yy:2884
 msgid "simple string expected"
 msgstr ""
 
-#: parser.yy:2915
+#: parser.yy:2901
 msgid "symbol expected"
 msgstr ""
 
-#: parser.yy:3059
+#: parser.yy:3041
 msgid "not a rhythmic event"
 msgstr ""
 
-#: parser.yy:3109
+#: parser.yy:3091
 msgid "post-event expected"
 msgstr ""
 
-#: parser.yy:3118 parser.yy:3123
+#: parser.yy:3100 parser.yy:3105
 msgid "have to be in Lyric mode for lyrics"
 msgstr ""
 
-#: parser.yy:3199
+#: parser.yy:3181
 msgid "expecting string or post-event as script definition"
 msgstr ""
 
-#: parser.yy:3303
+#: parser.yy:3285
 msgid "not an articulation"
 msgstr ""
 
-#: parser.yy:3369 parser.yy:3421
+#: parser.yy:3351 parser.yy:3403
 msgid "not a duration"
 msgstr ""
 
-#: parser.yy:3442
+#: parser.yy:3424
 msgid "bass number expected"
 msgstr ""
 
-#: parser.yy:3534
+#: parser.yy:3516
 msgid "have to be in Note mode for notes"
 msgstr ""
 
-#: parser.yy:3573
+#: parser.yy:3555
 msgid "have to be in Chord mode for chords"
 msgstr ""
 
-#: parser.yy:3616
+#: parser.yy:3598
 msgid "markup outside of text script or \\lyricmode"
 msgstr ""
 
-#: parser.yy:3621
+#: parser.yy:3603
 msgid "unrecognized string, not in text script or \\lyricmode"
 msgstr ""
 
-#: parser.yy:3773 parser.yy:3782
+#: parser.yy:3755 parser.yy:3764
 msgid "not an unsigned integer"
 msgstr ""
 
-#: parser.yy:3869
+#: parser.yy:3851
 msgid "not a markup"
 msgstr ""
 
@@ -3641,12 +3668,12 @@ msgstr ""
 msgid "Writing ~a..."
 msgstr ""
 
-#: framework-ps.scm:259
+#: framework-ps.scm:260
 #, scheme-format
 msgid "CFF font `~a' already embedded, skipping."
 msgstr ""
 
-#: framework-ps.scm:262
+#: framework-ps.scm:263
 #, scheme-format
 msgid ""
 "Different CFF fonts which have the same name `~a' has been detected. The "
@@ -3655,51 +3682,55 @@ msgstr ""
 
 #: framework-ps.scm:267
 #, scheme-format
-msgid "Embedding CFF font `~a'"
+msgid "Embedding CFF font `~a'."
+msgstr ""
+
+#: framework-ps.scm:272
+msgid "Initializing embedded CFF font list."
 msgstr ""
 
-#: framework-ps.scm:317
+#: framework-ps.scm:325
 #, scheme-format
 msgid ""
 "Font ~a cannot be loaded via Ghostscript because its font-index (~a) is not "
 "zero."
 msgstr ""
 
-#: framework-ps.scm:323
+#: framework-ps.scm:331
 #, scheme-format
 msgid ""
-"Font ~a cannot be loaded via Ghostscript because it is an OpenType/CFF (OTC) "
-"font."
+"Font ~a cannot be loaded via Ghostscript because it is an OpenType/CFF "
+"Collection (OTC) font."
 msgstr ""
 
-#: framework-ps.scm:329
+#: framework-ps.scm:337
 #, scheme-format
 msgid ""
 "Font ~a cannot be used via Ghostscript because it is a TrueType font that "
 "does not have glyph names."
 msgstr ""
 
-#: framework-ps.scm:343
+#: framework-ps.scm:351
 #, scheme-format
 msgid "cannot embed ~S=~S"
 msgstr ""
 
-#: framework-ps.scm:386
+#: framework-ps.scm:394
 #, scheme-format
 msgid "cannot extract file matching ~a from ~a"
 msgstr ""
 
-#: framework-ps.scm:403
+#: framework-ps.scm:411
 #, scheme-format
 msgid "do not know how to embed ~S=~S"
 msgstr ""
 
-#: framework-ps.scm:428
+#: framework-ps.scm:436
 #, scheme-format
 msgid "do not know how to embed font ~s ~s ~s"
 msgstr ""
 
-#: framework-ps.scm:810
+#: framework-ps.scm:820
 msgid ""
 "\n"
 "The PostScript backend does not support the\n"
@@ -4008,12 +4039,12 @@ msgstr ""
 msgid "quoted music `~a' is empty"
 msgstr ""
 
-#: ps-to-png.scm:72 ps-to-png.scm:75
+#: ps-to-png.scm:74 ps-to-png.scm:77
 #, scheme-format
 msgid "Copying `~a' to `~a'..."
 msgstr ""
 
-#: ps-to-png.scm:77 ps-to-png.scm:79
+#: ps-to-png.scm:79 ps-to-png.scm:81
 #, scheme-format
 msgid "Deleting `~a'..."
 msgstr ""
index 3e43a281330f089304ed199745d0abf7a8b5598b..f64312a839ce01d3f32d56711502926f172eb442 100644 (file)
@@ -3888,6 +3888,21 @@ def conv (str):
                   repl, str)
     return str
 
+@rule ((2, 19, 46), r"""\context ... \modification -> \context ... \with \modification
+\consists "Output_property_engraver" ->""")
+def conv (str):
+    word=r'(?:#?"[^"]*"|\b' + wordsyntax + r'\b)'
+    mods = string.join (re.findall ("\n(" + wordsyntax + r")\s*=\s*\\with(?:\s|\\|\{)", str)
+                        + ['RemoveEmptyStaves','RemoveAllEmptyStaves'], "|")
+    str = re.sub (r"(\\(?:drums|figures|chords|lyrics|addlyrics|"
+                  + r"(?:new|context)\s*" + word
+                  + r"(?:\s*=\s*" + word + r")?)\s*)(\\(?:" + mods + "))",
+                  r"\1\\with \2", str)
+
+    str = re.sub (r'\\(consists|remove)\s+"?Output_property_engraver"?\s*',
+                  '', str)
+    return str
+
 # Guidelines to write rules (please keep this at the end of this file)
 #
 # - keep at most one rule per version; if several conversions should be done,
index cb9103a6fcda899fe88d459af846f724e5e01e92..7ca44b6f3d3fd8bdb494b6a0f23dff71b95eb65f 100644 (file)
@@ -992,7 +992,7 @@ override:
 \\override MultiMeasureRest
   #'spacing-pair = #'(staff-bar . staff-bar)
 @end example")
-     (spanner-id ,string? "An identifier to distinguish concurrent spanners.")
+     (spanner-id ,key? "An identifier to distinguish concurrent spanners.")
      (springs-and-rods ,boolean? "Dummy variable for triggering
 spacing routines.")
      (stacking-dir ,ly:dir? "Stack objects in which direction?")
index f525edd69a4040cb5acbec48b052ac006e96da34..6ca25b586e69ce735effaf5bd61a2f941270a794 100644 (file)
         (height-limit . 2.0)
         (minimum-length . 1.5)
         (ratio . 0.333)
-        (spanner-id . "")
         (springs-and-rods . ,ly:spanner::set-spacing-rods)
         (stencil . ,ly:slur::print)
         (thickness . 1.1)
         (line-thickness . 0.8)
         (minimum-length . 1.5)
         (ratio . 0.25)
-        (spanner-id . "")
         (springs-and-rods . ,ly:spanner::set-spacing-rods)
         (stencil . ,ly:slur::print)
         (thickness . 1.2)
index 4df3f933405fd4a1be7ea953eae62912a295bcb5..f8c567d1fa09d50958744e22e18166b8c1ec67d5 100644 (file)
@@ -183,7 +183,7 @@ If zero, signals a beat containing varying durations.")
 Options are @code{'text} and @code{'hairpin}.")
      (span-text ,markup? "The displayed text for dynamic text
 spanners (e.g., cresc.)")
-     (spanner-id ,string? "Identifier to distinguish concurrent spanners.")
+     (spanner-id ,key? "Identifier to distinguish concurrent spanners.")
      (start-callback ,procedure? "Function to compute the negative length
 of starting grace notes.  This property can only be defined as initializer
 in @file{scm/@/define-music-types.scm}.")
index e0190eda5516c419eb6763affa58e968b082ae20..348bcd0e87228669e281cf379f5fc10332ac6396 100644 (file)
@@ -438,7 +438,6 @@ goes down).")
      . ((description . "Start or end phrasing slur.
 
 Syntax: @var{note}@code{\\(} and @var{note}@code{\\)}")
-        (spanner-id . "")
         (types . (post-event span-event event phrasing-slur-event))
         ))
 
@@ -570,7 +569,6 @@ Syntax: @code{\\skip} @var{duration}")
      . ((description . "Start or end slur.
 
 Syntax: @var{note}@code{(} and @var{note}@code{)}")
-        (spanner-id . "")
         (types . (post-event span-event event slur-event))
         ))
 
index 8221e5eab35229e1e2f2e558ed1ca46e1ca3c152..a4041196789c989d7f7a5616cdd1c8ecd10b876c 100644 (file)
 (define check-conflict-and-embed-cff
   (let ((font-list '()))
     (lambda (name file-name font-index)
-      (let* ((name-symbol (string->symbol name))
-             (args-filename-offset
-              (cons file-name (ly:get-cff-offset file-name font-index)))
-             (found-filename-offset (assq name-symbol font-list)))
-        (if found-filename-offset
-            (begin
-              (if (equal? args-filename-offset (cdr found-filename-offset))
-                  (ly:debug
-                   (_ "CFF font `~a' already embedded, skipping.")
-                   name)
-                  (ly:warning
-                   (_ "Different CFF fonts which have the same name `~a' has been detected. The font cannot be embedded.")
-                   name))
-              "")
-            (begin
-              (ly:debug
-               (_ "Embedding CFF font `~a'")
-               name)
-              (set! font-list
-                    (acons name-symbol args-filename-offset font-list))
-              (ps-embed-cff (ly:otf->cff file-name font-index) name 0)))))))
+      (if name
+          (let* ((name-symbol (string->symbol name))
+                 (args-filename-offset
+                  (cons file-name (ly:get-cff-offset file-name font-index)))
+                 (found-filename-offset (assq name-symbol font-list)))
+            (if found-filename-offset
+                (begin
+                  (if (equal? args-filename-offset (cdr found-filename-offset))
+                      (ly:debug
+                       (_ "CFF font `~a' already embedded, skipping.")
+                       name)
+                      (ly:warning
+                       (_ "Different CFF fonts which have the same name `~a' has been detected. The font cannot be embedded.")
+                       name))
+                  "")
+                (begin
+                  (ly:debug (_ "Embedding CFF font `~a'.") name)
+                  (set! font-list
+                        (acons name-symbol args-filename-offset font-list))
+                  (ps-embed-cff (ly:otf->cff file-name font-index) name 0))))
+          (begin
+            (ly:debug (_ "Initializing embedded CFF font list."))
+            (set! font-list '()))))))
+
+(define (initialize-font-embedding)
+  (check-conflict-and-embed-cff #f #f #f))
 
 (define (write-preamble paper load-fonts? port)
   (define (internal-font? font-name-filename)
 
   (define (load-font-via-GS font-name-filename)
     (define (is-collection-font? file-name)
-      (let ((port (open-file file-name "rb")))
-        (if (eq? (read-char port) #\t)
-            (if (eq? (read-char port) #\t)
-                (if (eq? (read-char port) #\c)
-                    (if (eq? (read-char port) #\f)
-                        #t
-                        #f)
-                    #f)
-                #f)
-            #f)))
+      (let* ((port (open-file file-name "rb"))
+             (retval
+              (if (eq? (read-char port) #\t)
+                  (if (eq? (read-char port) #\t)
+                      (if (eq? (read-char port) #\c)
+                          (if (eq? (read-char port) #\f)
+                              #t
+                              #f)
+                          #f)
+                      #f)
+                  #f)))
+        (close-port port)
+        retval))
 
     (define (ps-load-file file-name)
       (if (string? file-name)
        ((and (string? bare-file-name)
              (eq? (ly:get-font-format bare-file-name font-index) 'CFF)
              (is-collection-font? bare-file-name))
-        (ly:warning (_ "Font ~a cannot be loaded via Ghostscript because it is an OpenType/CFF (OTC) font.")
+        (ly:warning (_ "Font ~a cannot be loaded via Ghostscript because it is an OpenType/CFF Collection (OTC) font.")
                     name)
         (load-font font-name-filename))
        ((and (string? bare-file-name)
@@ -575,6 +583,7 @@ mark {ly~a_stream} /CLOSE pdfmark
          (page-number (1- (ly:output-def-lookup paper 'first-page-number)))
          (page-count (length page-stencils))
          (port (ly:outputter-port outputter)))
+    (initialize-font-embedding)
     (if (ly:get-option 'clip-systems)
         (clip-system-EPSes basename book))
     (if (ly:get-option 'dump-signatures)
@@ -655,6 +664,7 @@ mark {ly~a_stream} /CLOSE pdfmark
          (rounded-bbox (to-rounded-bp-box bbox))
          (port (ly:outputter-port outputter))
          (header (eps-header paper rounded-bbox load-fonts)))
+    (initialize-font-embedding)
     (display header port)
     (write-preamble paper load-fonts port)
     (display "/mark_page_link { pop pop pop pop pop } bind def\n" port)
index 98e9ac3021750bd510e9e9b276944820ab730fd4..f9e26ed360235d316a5a467fab1c9d19483d3f3f 100644 (file)
@@ -185,32 +185,110 @@ Typically used to construct a scale for input to
 
 (define-public (retrograde-music music)
   "Returns @var{music} in retrograde (reversed) order."
-  ;; Copied from LSR #105 and renamed.
   ;; Included here to allow this module to provide a complete set of
   ;; common formal operations on motives, i.e transposition,
   ;; inversion and retrograding.
 
-  (let* ((elements (ly:music-property music 'elements))
-         (arts (ly:music-property music 'articulations))
-         (reversed (reverse elements))
-         (element (ly:music-property music 'element))
-         (span-dir (ly:music-property music 'span-direction)))
-
-    (ly:music-set-property! music 'elements reversed)
-
-    (for-each retrograde-music arts)
-
-    (if (ly:music? element)
-        (ly:music-set-property!
-         music 'element
-         (retrograde-music element)))
-
-    (if (ly:dir? span-dir)
-        (ly:music-set-property! music 'span-direction (- span-dir)))
-
-    (for-each retrograde-music reversed)
-
-    music))
+  (define (reverse-span! m)
+    ;; invert direction of two-sided spanners
+    (let ((spd (ly:music-property m 'span-direction)))
+      (if (ly:dir? spd)
+          (begin
+            (set! (ly:music-property m 'span-direction) (- spd))
+            (case (ly:music-property m 'name)
+              ((CrescendoEvent)
+               (make-music 'DecrescendoEvent m))
+              ((DecrescendoEvent)
+               (make-music 'CrescendoEvent m))
+              (else m)))
+          m)))
+
+  ;; carryover is a possible list of tie events, the loop returns any
+  ;; such trailing list from the given expression
+  (define (loop m carryover)
+    (define (filter-ties! m carryover field)
+      (let ((vals (ly:music-property m field)))
+        (if (pair? vals)
+            (call-with-values
+                (lambda ()
+                  (partition! (music-type-predicate
+                               '(tie-event glissando-event)) vals))
+              (lambda (ties no-ties)
+                (set! (ly:music-property m field)
+                      (append! (map! reverse-span! no-ties) carryover))
+                ties))
+            (begin
+              (if (pair? carryover)
+                  (set! (ly:music-property m field) carryover))
+              '()))))
+
+    ;; The reversal will let some prefatory material stay in front of
+    ;; the following element.  Most prominently single
+    ;; overrides/reverts/sets/unsets and applyContext.  This does not
+    ;; change the position of a clef (which will generally be useless
+    ;; after retrograding) but it does not jumble the clef change
+    ;; command internals.  Also, stuff like \once\override stays at
+    ;; the affected element.
+
+    (define (prefatory? m)
+      (or ((music-type-predicate
+            '(apply-context apply-output-event layout-instruction-event)) m)
+          (and
+           (music-is-of-type? m 'music-wrapper-music)
+           (prefatory? (ly:music-property m 'element)))))
+
+    (define (musiclistreverse lst)
+      (let loop ((lst lst) (res '()) (zeros '()))
+        (cond ((null? lst) (reverse! zeros res))
+              ((prefatory? (car lst))
+               (loop (cdr lst) res (cons (car lst) zeros)))
+              (else
+               (loop (cdr lst) (reverse! zeros (cons (car lst) res)) '())))))
+
+    (cond ((music-is-of-type? m 'event-chord)
+           (let* ((chord-ties
+                   (append!
+                    (filter-ties! m carryover 'elements)
+                    ;; articulations on an event-chord do not occur
+                    ;; "naturally" but are supported when user-generated
+                    ;; elsewhere, so we treat them properly
+                    (filter-ties! m '() 'articulations)))
+                  ;; in-chord ties are converted to per-chord ties.
+                  ;; This is less than optimal but pretty much the
+                  ;; best we can hope to achieve with this approach.
+                  (element-ties
+                   (append-map!
+                    (lambda (m) (filter-ties! m '() 'articulations))
+                    (ly:music-property m 'elements))))
+             (append! chord-ties element-ties)))
+
+          ((music-is-of-type? m 'rhythmic-event)
+           (filter-ties! m carryover 'articulations))
+
+          ;; The following is hardly correct but tieing inside of
+          ;; <<...>> is really beyond our pay grade.
+          ((music-is-of-type? m 'simultaneous-music)
+           (append-map! (lambda (m) (loop m (ly:music-deep-copy carryover)))
+                        (ly:music-property m 'elements)))
+          (else
+           (let ((elt (ly:music-property m 'element))
+                 (elts (ly:music-property m 'elements)))
+             (let ((res
+                    (fold loop
+                          (if (ly:music? elt) (loop elt carryover) carryover)
+                          elts)))
+               (if (ly:music? elt)
+                   (set! (ly:music-property m 'element)
+                         (reverse-span! elt)))
+               (if (pair? elts)
+                   (set! (ly:music-property m 'elements)
+                         (map! reverse-span! (musiclistreverse elts))))
+               (append! res (filter-ties! m '() 'articulations)))))))
+  (let ((dangling (loop music '())))
+    (for-each
+     (lambda (t) (ly:music-warning t (_ "Dangling tie in \\retrograde")))
+     dangling))
+  music)
 
 (define-public (pitch-invert around to music)
   "If @var{music} is a single pitch, inverts it about @var{around}
index f5d40d0c5ceefdcd94cbcf4e39cc126c0b57a57b..f20ca61b41a471c0b7646c9248915fdf1138670f 100644 (file)
@@ -69,6 +69,8 @@
            (search-pnmtopng)
            tmp2-name)))
 
+    (close-port port-tmp1)
+    (close-port port-tmp2)
     (ly:debug (_ "Copying `~a' to `~a'...") file tmp1-name)
     (copy-binary-file file tmp1-name)
     (ly:system-with-shell cmd)
index 5358fc46984ad6e8a49e363c2aaf622f816c18b9..3a29f9aaa1cebe66db1b3c16b770dd7a866b9b58 100644 (file)
@@ -267,11 +267,13 @@ class Note:
         elif commas < 0:
             s = s + "," * -commas
 
-        if ((dump_dur
-             and self.duration.compare (reference_note.duration))
-            or global_options.explicit_durations):
+        if (dump_dur
+            and (self.duration.compare (reference_note.duration)
+                 or global_options.explicit_durations)):
             s = s + self.duration.dump ()
 
+        # Chords need to handle their reference duration themselves
+
         reference_note = self
 
         # TODO: move space
@@ -653,13 +655,17 @@ def dump_chord (ch):
         s = s + dump (notes[0])
     elif len (notes) > 1:
         global reference_note
+        reference_dur = reference_note.duration
         s = s + '<'
         s = s + notes[0].dump (dump_dur=False)
         r = reference_note
         for i in notes[1:]:
             s = s + i.dump (dump_dur=False)
         s = s + '>'
-        s = s + notes[0].duration.dump () + ' '
+        if (r.duration.compare (reference_dur)
+            or global_options.explicit_durations):
+            s = s + r.duration.dump ()
+        s = s + ' '
         reference_note = r
     return s
 
index d7e6b1f6b802a1b82e7eaaad11697ebee30b7eb8..79bc925655d9deefe09158674f6a9affac10cc0d 100644 (file)
@@ -3,7 +3,7 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2016-05-26.20}
+\def\texinfoversion{2016-07-20.14}
 %
 % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
@@ -1192,6 +1192,7 @@ where each line of input produces a line of output.}
   \ifx\pdfescapestring\thisisundefined
     % No primitive available; should we give a warning or log?
     % Many times it won't matter.
+    \xdef#1{#1}%
   \else
     % The expandable \pdfescapestring primitive escapes parentheses,
     % backslashes, and other special chars.
@@ -1311,8 +1312,10 @@ output) for that.)}
     % We have to set dummies so commands such as @code, and characters
     % such as \, aren't expanded when present in a section title.
     \indexnofonts
-    \turnoffactive
     \makevalueexpandable
+    \turnoffactive
+    % Use ASCII approximations in destination names.
+    \passthroughcharsfalse
     \def\pdfdestname{#1}%
     \txiescapepdf\pdfdestname
     \safewhatsit{\pdfdest name{\pdfdestname} xyz}%
@@ -1357,8 +1360,21 @@ output) for that.)}
       \fi
       %
       % Also escape PDF chars in the display string.
-      \edef\pdfoutlinetext{#1}%
-      \txiescapepdf\pdfoutlinetext
+      \bgroup
+        \ifx \declaredencoding \latone
+          % The PDF format can use an extended form of Latin-1 in bookmark
+          % strings.  See Appendix D of the PDF Reference, Sixth Edition, for
+          % the "PDFDocEncoding".
+          \passthroughcharstrue
+        \fi
+        \ifx \declaredencoding \utfeight
+          % TODO: the PDF format can use UTF-16 in bookmark strings, but the
+          % code for this isn't done yet.
+        \fi
+        \globaldefs=1
+        \edef\pdfoutlinetext{#1}%
+        \txiescapepdf\pdfoutlinetext
+      \egroup
       %
       \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}%
     }
@@ -1525,11 +1541,21 @@ output) for that.)}
   %
   % XeTeX version check
   %
-  \ifnum\strcmp{\the\XeTeXversion\XeTeXrevision}{0.99995}>-1
+  \ifnum\strcmp{\the\XeTeXversion\XeTeXrevision}{0.99996}>-1
+    % TeX Live 2016 contains XeTeX 0.99996 and xdvipdfmx 20160307.
+    % It can be used `dvipdfmx:config' special (from TeX Live SVN r40941).
+    % For avoiding PDF destination name replacement, we use the special
+    % instead of xdvipdfmx commandline option `-C 0x0010'.
+    \special{dvipdfmx:config C 0x0010}
     % XeTeX 0.99995+ contains xdvipdfmx 20160307+.
     % It can handle Unicode destination name for PDF.
     \txiuseunicodedestnametrue
   \else
+    % XeTeX < 0.99996 (TeX Live < 2016) cannot be used
+    % `dvipdfmx:config' special.
+    % So for avoiding PDF destination name replacement,
+    % xdvipdfmx commandline option `-C 0x0010' is necessary.
+    %
     % XeTeX < 0.99995 can not handle Unicode destination name for PDF
     % because xdvipdfmx 20150315 has UTF-16 convert issue.
     % It fixed by xdvipdfmx 20160106 (TeX Live SVN r39753).
@@ -1540,7 +1566,7 @@ output) for that.)}
   %
   % Emulate the primitive of pdfTeX
   \def\pdfdest name#1 xyz{%
-    \special{pdf:dest (name#1) [@thispage /XYZ @xpos @ypos]}%
+    \special{pdf:dest (name#1) [@thispage /XYZ @xpos @ypos null]}%
   }
   \def\pdfmkdest#1{{%
     % We have to set dummies so commands such as @code, and characters
@@ -3870,7 +3896,7 @@ end
 
 
 \message{tables,}
-% Tables -- @table, @ftable, @vtable, @item(x).
+% Tables -- @table, @ftable, @ktable, @vtable, @item(x).
 
 % default indentation of table text
 \newdimen\tableindent \tableindent=.8in
@@ -3882,7 +3908,7 @@ end
 % used internally for \itemindent minus \itemmargin
 \newdimen\itemmax
 
-% Note @table, @ftable, and @vtable define @item, @itemx, etc., with
+% Note @table, @ftable, @ktable and @vtable define @item, @itemx, etc., with
 % these defs.
 % They also define \itemindex
 % to index the item name in whatever manner is desired (perhaps none).
@@ -3950,7 +3976,7 @@ end
 \def\item{\errmessage{@item while not in a list environment}}
 \def\itemx{\errmessage{@itemx while not in a list environment}}
 
-% @table, @ftable, @vtable.
+% @table, @ftable, @ktable, @vtable.
 \envdef\table{%
   \let\itemindex\gobble
   \tablecheck{table}%
@@ -3959,6 +3985,10 @@ end
   \def\itemindex ##1{\doind {fn}{\code{##1}}}%
   \tablecheck{ftable}%
 }
+\envdef\ktable{%
+  \def\itemindex ##1{\doind {ky}{\code{##1}}}%
+  \tablecheck{ktable}%
+}
 \envdef\vtable{%
   \def\itemindex ##1{\doind {vr}{\code{##1}}}%
   \tablecheck{vtable}%
@@ -4002,6 +4032,7 @@ end
 }
 \def\Etable{\endgraf\afterenvbreak}
 \let\Eftable\Etable
+\let\Ektable\Etable
 \let\Evtable\Etable
 \let\Eitemize\Etable
 \let\Eenumerate\Etable
@@ -4609,11 +4640,23 @@ end
 % Like \expandablevalue, but completely expandable (the \message in the
 % definition above operates at the execution level of TeX).  Used when
 % writing to auxiliary files, due to the expansion that \write does.
+% If flag is undefined, pass through an unexpanded @value command: maybe it 
+% will be set by the time it is read back in.
 %
 % NB flag names containing - or _ may not work here.
 \def\dummyvalue#1{%
   \expandafter\ifx\csname SET#1\endcsname\relax
-    [No value for ``#1'']%
+    \noexpand\value{#1}%
+  \else
+    \csname SET#1\endcsname
+  \fi
+}
+
+% Used for @value's in index entries to form the sort key: expand the @value
+% if possible, otherwise sort late.
+\def\indexnofontsvalue#1{%
+  \expandafter\ifx\csname SET#1\endcsname\relax
+    ZZZZZZZ
   \else
     \csname SET#1\endcsname
   \fi
@@ -4760,7 +4803,7 @@ end
 
 % Define \doindex, the driver for all index macros.
 % Argument #1 is generated by the calling \fooindex macro,
-% and it the two-letter name of the index.
+% and it is the two-letter name of the index.
 
 \def\doindex#1{\edef\indexname{#1}\parsearg\doindexxxx}
 \def\doindexxxx #1{\doind{\indexname}{#1}}
@@ -4769,6 +4812,7 @@ end
 \def\docodeindex#1{\edef\indexname{#1}\parsearg\docodeindexxxx}
 \def\docodeindexxxx #1{\doind{\indexname}{\code{#1}}}
 
+\f
 % Used when writing an index entry out to an index file to prevent
 % expansion of Texinfo commands that can appear in an index entry.
 %
@@ -4787,9 +4831,11 @@ end
   \def\}{{\tt\char125}}%
   %
   % Do the redefinitions.
-  \commondummies
+  \definedummies
 }
 
+% Used for the aux and toc files, where @ is the escape character.
+%
 % For the aux and toc files, @ is the escape character.  So we want to
 % redefine everything using @ as the escape character (instead of
 % \realbackslash, still used for index files).  When everything uses @,
@@ -4802,30 +4848,35 @@ end
   \let\} = \rbraceatcmd
   %
   % Do the redefinitions.
-  \commondummies
+  \definedummies
   \otherbackslash
 }
 
-% Called from \indexdummies and \atdummies.
+% \definedummyword defines \#1 as \string\#1\space, thus effectively
+% preventing its expansion.  This is used only for control words,
+% not control letters, because the \space would be incorrect for
+% control characters, but is needed to separate the control word
+% from whatever follows.
 %
-\def\commondummies{%
-  % \definedummyword defines \#1 as \string\#1\space, thus effectively
-  % preventing its expansion.  This is used only for control words,
-  % not control letters, because the \space would be incorrect for
-  % control characters, but is needed to separate the control word
-  % from whatever follows.
-  %
-  % For control letters, we have \definedummyletter, which omits the
-  % space.
-  %
-  % These can be used both for control words that take an argument and
-  % those that do not.  If it is followed by {arg} in the input, then
-  % that will dutifully get written to the index (or wherever).
-  %
-  \def\definedummyword  ##1{\def##1{\string##1\space}}%
-  \def\definedummyletter##1{\def##1{\string##1}}%
-  \let\definedummyaccent\definedummyletter
+% These can be used both for control words that take an argument and
+% those that do not.  If it is followed by {arg} in the input, then
+% that will dutifully get written to the index (or wherever).
+%
+% For control letters, we have \definedummyletter, which omits the
+% space.
+%
+\def\definedummyword  #1{\def#1{\string#1\space}}%
+\def\definedummyletter#1{\def#1{\string#1}}%
+\let\definedummyaccent\definedummyletter
+
+% Called from \indexdummies and \atdummies, to effectively prevent
+% the expansion of commands.
+%
+\def\definedummies{%
   %
+  \let\commondummyword\definedummyword
+  \let\commondummyletter\definedummyletter
+  \let\commondummyaccent\definedummyaccent
   \commondummiesnofonts
   %
   \definedummyletter\_%
@@ -4910,77 +4961,77 @@ end
   \normalturnoffactive
 }
 
-% \commondummiesnofonts: common to \commondummies and \indexnofonts.
-% Define \definedumyletter, \definedummyaccent and \definedummyword before
-% using.
+% \commondummiesnofonts: common to \definedummies and \indexnofonts.
+% Define \commondummyletter, \commondummyaccent and \commondummyword before
+% using.  Used for accents, font commands, and various control letters.
 %
 \def\commondummiesnofonts{%
   % Control letters and accents.
-  \definedummyletter\!%
-  \definedummyaccent\"%
-  \definedummyaccent\'%
-  \definedummyletter\*%
-  \definedummyaccent\,%
-  \definedummyletter\.%
-  \definedummyletter\/%
-  \definedummyletter\:%
-  \definedummyaccent\=%
-  \definedummyletter\?%
-  \definedummyaccent\^%
-  \definedummyaccent\`%
-  \definedummyaccent\~%
-  \definedummyword\u
-  \definedummyword\v
-  \definedummyword\H
-  \definedummyword\dotaccent
-  \definedummyword\ogonek
-  \definedummyword\ringaccent
-  \definedummyword\tieaccent
-  \definedummyword\ubaraccent
-  \definedummyword\udotaccent
-  \definedummyword\dotless
+  \commondummyletter\!%
+  \commondummyaccent\"%
+  \commondummyaccent\'%
+  \commondummyletter\*%
+  \commondummyaccent\,%
+  \commondummyletter\.%
+  \commondummyletter\/%
+  \commondummyletter\:%
+  \commondummyaccent\=%
+  \commondummyletter\?%
+  \commondummyaccent\^%
+  \commondummyaccent\`%
+  \commondummyaccent\~%
+  \commondummyword\u
+  \commondummyword\v
+  \commondummyword\H
+  \commondummyword\dotaccent
+  \commondummyword\ogonek
+  \commondummyword\ringaccent
+  \commondummyword\tieaccent
+  \commondummyword\ubaraccent
+  \commondummyword\udotaccent
+  \commondummyword\dotless
   %
   % Texinfo font commands.
-  \definedummyword\b
-  \definedummyword\i
-  \definedummyword\r
-  \definedummyword\sansserif
-  \definedummyword\sc
-  \definedummyword\slanted
-  \definedummyword\t
+  \commondummyword\b
+  \commondummyword\i
+  \commondummyword\r
+  \commondummyword\sansserif
+  \commondummyword\sc
+  \commondummyword\slanted
+  \commondummyword\t
   %
   % Commands that take arguments.
-  \definedummyword\abbr
-  \definedummyword\acronym
-  \definedummyword\anchor
-  \definedummyword\cite
-  \definedummyword\code
-  \definedummyword\command
-  \definedummyword\dfn
-  \definedummyword\dmn
-  \definedummyword\email
-  \definedummyword\emph
-  \definedummyword\env
-  \definedummyword\file
-  \definedummyword\image
-  \definedummyword\indicateurl
-  \definedummyword\inforef
-  \definedummyword\kbd
-  \definedummyword\key
-  \definedummyword\math
-  \definedummyword\option
-  \definedummyword\pxref
-  \definedummyword\ref
-  \definedummyword\samp
-  \definedummyword\strong
-  \definedummyword\tie
-  \definedummyword\U
-  \definedummyword\uref
-  \definedummyword\url
-  \definedummyword\var
-  \definedummyword\verb
-  \definedummyword\w
-  \definedummyword\xref
+  \commondummyword\abbr
+  \commondummyword\acronym
+  \commondummyword\anchor
+  \commondummyword\cite
+  \commondummyword\code
+  \commondummyword\command
+  \commondummyword\dfn
+  \commondummyword\dmn
+  \commondummyword\email
+  \commondummyword\emph
+  \commondummyword\env
+  \commondummyword\file
+  \commondummyword\image
+  \commondummyword\indicateurl
+  \commondummyword\inforef
+  \commondummyword\kbd
+  \commondummyword\key
+  \commondummyword\math
+  \commondummyword\option
+  \commondummyword\pxref
+  \commondummyword\ref
+  \commondummyword\samp
+  \commondummyword\strong
+  \commondummyword\tie
+  \commondummyword\U
+  \commondummyword\uref
+  \commondummyword\url
+  \commondummyword\var
+  \commondummyword\verb
+  \commondummyword\w
+  \commondummyword\xref
 }
 
 % For testing: output @{ and @} in index sort strings as \{ and \}.
@@ -5036,11 +5087,11 @@ end
 %
 \def\indexnofonts{%
   % Accent commands should become @asis.
-  \def\definedummyaccent##1{\let##1\asis}%
+  \def\commondummyaccent##1{\let##1\asis}%
   % We can just ignore other control letters.
-  \def\definedummyletter##1{\let##1\empty}%
+  \def\commondummyletter##1{\let##1\empty}%
   % All control words become @asis by default; overrides below.
-  \let\definedummyword\definedummyaccent
+  \let\commondummyword\commondummyaccent
   \commondummiesnofonts
   %
   % Don't no-op \tt, since it isn't a user-level command
@@ -5125,8 +5176,11 @@ end
   % goes to end-of-line is not handled.
   %
   \macrolist
+  \let\value\indexnofontsvalue
 }
 
+\f
+
 
 \let\SETmarginindex=\relax % put index entries in margin (undocumented)?
 
@@ -5925,18 +5979,32 @@ end
         \global\advance\dimen@ by 1pt
       \repeat
     }%
-    \multiply\dimen@ii by 4
-    \divide\dimen@ii by 5
-    \ifdim\ht3<\dimen@ii
-      % Column heights are too different, so don't make their bottoms
-      % flush with each other.  The glue at the end of the second column
-      % allows a second column to stretch, reducing the difference in
-      % height between the two.
-      \setbox0=\vbox to\dimen@{\unvbox1\vfill}%
-      \setbox2=\vbox to\dimen@{\unvbox3\vskip 0pt plus 0.3\ht0}%
+    \ifdim2\ht1>\vsize
+      % The left column has come out longer than the page itself.  (Note
+      % that we have doubled \vsize for the double columns, so
+      % the actual height of the page is 0.5\vsize).  Just split the last
+      % of the double column material roughly in half.
+      \setbox2=\box0
+      \setbox0 = \vsplit2 to \dimen@ii
+      \setbox0=\vbox to\dimen@ii{\unvbox0}%
+      \setbox2=\vbox to\dimen@ii{\unvbox2}%
     \else
-      \setbox0=\vbox to\dimen@{\unvbox1}%
-      \setbox2=\vbox to\dimen@{\unvbox3}%
+      \multiply\dimen@ii by 5
+      \divide\dimen@ii by 4
+      \global\setbox3 = \copy0
+      \global\setbox1 = \vsplit3 to \dimen@ii
+      \global\setbox\balancedcolumns=\vbox{\pagesofar}%
+      \ifdim\ht3<\dimen@ii
+        % Column heights are too different, so don't make their bottoms
+        % flush with each other.  The glue at the end of the second column
+        % allows a second column to stretch, reducing the difference in
+        % height between the two.
+        \setbox0=\vbox to\dimen@{\unvbox1\vfill}%
+        \setbox2=\vbox to\dimen@{\unvbox3\vskip 0pt plus 0.3\ht0}%
+      \else
+        \setbox0=\vbox to\dimen@{\unvbox1}%
+        \setbox2=\vbox to\dimen@{\unvbox3}%
+      \fi
     \fi
   \fi
   %
@@ -7985,7 +8053,7 @@ end
 \newif\ifrecursive  % Is it recursive?
 
 % List of all defined macros in the form
-%    \definedummyword\macro1\definedummyword\macro2...
+%    \commondummyword\macro1\commondummyword\macro2...
 % Currently is also contains all @aliases; the list can be split
 % if there is a need.
 \def\macrolist{}
@@ -7993,7 +8061,7 @@ end
 % Add the macro to \macrolist
 \def\addtomacrolist#1{\expandafter \addtomacrolistxxx \csname#1\endcsname}
 \def\addtomacrolistxxx#1{%
-     \toks0 = \expandafter{\macrolist\definedummyword#1}%
+     \toks0 = \expandafter{\macrolist\commondummyword#1}%
      \xdef\macrolist{\the\toks0}%
 }
 
@@ -8134,7 +8202,7 @@ end
     % Remove the macro name from \macrolist:
     \begingroup
       \expandafter\let\csname#1\endcsname \relax
-      \let\definedummyword\unmacrodo
+      \let\commondummyword\unmacrodo
       \xdef\macrolist{\macrolist}%
     \endgroup
   \else
@@ -8149,7 +8217,7 @@ end
   \ifx #1\relax
     % remove this
   \else
-    \noexpand\definedummyword \noexpand#1%
+    \noexpand\commondummyword \noexpand#1%
   \fi
 }
 
@@ -8424,8 +8492,7 @@ end
 % its parameters, looking like "\xeatspaces{\hash 1}".
 %    \paramno is the number of parameters
 %    \paramlist is a TeX parameter text, e.g. "#1,#2,#3,"
-% There are eight cases: recursive and nonrecursive macros of zero, one,
-% up to nine, and many arguments.
+% There are four cases: macros of zero, one, up to nine, and many arguments.
 % \xdef is used so that macro definitions will survive the file
 % they're defined in: @include reads the file inside a group.
 %
@@ -8440,91 +8507,48 @@ end
   \else
     \let\xeatspaces\relax % suppress expansion
   \fi
-  \ifrecursive   %%%%%%%%%%%%%% Recursive %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-    \ifcase\paramno
-    % 0
-      \expandafter\xdef\csname\the\macname\endcsname{%
-        \noexpand\scanmacro{\macrobody}}%
-    \or % 1
+  \ifcase\paramno
+  % 0
+    \expandafter\xdef\csname\the\macname\endcsname{%
+      \noexpand\scanmacro{\macrobody}}%
+  \or % 1
+    \expandafter\xdef\csname\the\macname\endcsname{%
+       \bgroup
+       \noexpand\braceorline
+       \expandafter\noexpand\csname\the\macname @@@\endcsname}%
+    \expandafter\xdef\csname\the\macname @@@\endcsname##1{%
+      \egroup
+      \noexpand\scanmacro{\macrobody}%
+      }%
+  \else % at most 9
+    \ifnum\paramno<10\relax
+      % @MACNAME sets the context for reading the macro argument
+      % @MACNAME@@ gets the argument, processes backslashes and appends a 
+      % comma.
+      % @MACNAME@@@ removes braces surrounding the argument list.
+      % @MACNAME@@@@ scans the macro body with arguments substituted.
       \expandafter\xdef\csname\the\macname\endcsname{%
-         \bgroup
-         \noexpand\braceorline
-         \expandafter\noexpand\csname\the\macname @@@\endcsname}%
+        \bgroup
+        \noexpand\expandafter  % This \expandafter skip any spaces after the
+        \noexpand\macroargctxt % macro before we change the catcode of space.
+        \noexpand\expandafter
+        \expandafter\noexpand\csname\the\macname @@\endcsname}%
+      \expandafter\xdef\csname\the\macname @@\endcsname##1{%
+          \noexpand\passargtomacro
+          \expandafter\noexpand\csname\the\macname @@@\endcsname{##1,}}%
       \expandafter\xdef\csname\the\macname @@@\endcsname##1{%
-        \egroup
-        \noexpand\scanmacro{\macrobody}%
-        }%
-    \else
-      \ifnum\paramno<10\relax % at most 9
-        % See non-recursive section below for comments
-        \expandafter\xdef\csname\the\macname\endcsname{%
-          \bgroup
-          \noexpand\expandafter
-          \noexpand\macroargctxt
-          \noexpand\expandafter
-          \expandafter\noexpand\csname\the\macname @@\endcsname}%
-        \expandafter\xdef\csname\the\macname @@\endcsname##1{%
-            \noexpand\passargtomacro
-            \expandafter\noexpand\csname\the\macname @@@\endcsname{##1,}}%
-        \expandafter\xdef\csname\the\macname @@@\endcsname##1{%
-            \expandafter\noexpand\csname\the\macname @@@@\endcsname ##1}%
-        \expandafter\expandafter
-        \expandafter\xdef
-        \expandafter\expandafter
-          \csname\the\macname @@@@\endcsname\paramlist{%
-            \egroup\noexpand\scanmacro{\macrobody}}%
-      \else % 10 or more
-        \expandafter\xdef\csname\the\macname\endcsname{%
-          \noexpand\getargvals@{\the\macname}{\argl}%
-        }%    
-        \global\expandafter\let\csname mac.\the\macname .body\endcsname\macrobody
-        \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\gobble
-      \fi
-    \fi
-  \else  %%%%%%%%%%%%%%%%%%%%%% Non-recursive %%%%%%%%%%%%%%%%%%%%%%%%%%
-    \ifcase\paramno
-    % 0
+          \expandafter\noexpand\csname\the\macname @@@@\endcsname ##1}%
+      \expandafter\expandafter
+      \expandafter\xdef
+      \expandafter\expandafter
+        \csname\the\macname @@@@\endcsname\paramlist{%
+          \egroup\noexpand\scanmacro{\macrobody}}%
+    \else % 10 or more:
       \expandafter\xdef\csname\the\macname\endcsname{%
-        \noexpand\scanmacro{\macrobody}}%
-    \or % 1
-      \expandafter\xdef\csname\the\macname\endcsname{%
-         \bgroup
-         \noexpand\braceorline
-         \expandafter\noexpand\csname\the\macname @@@\endcsname}%
-      \expandafter\xdef\csname\the\macname @@@\endcsname##1{%
-        \egroup
-        \noexpand\scanmacro{\macrobody}%
-        }%
-    \else % at most 9
-      \ifnum\paramno<10\relax
-        % @MACNAME sets the context for reading the macro argument
-        % @MACNAME@@ gets the argument, processes backslashes and appends a 
-        % comma.
-        % @MACNAME@@@ removes braces surrounding the argument list.
-        % @MACNAME@@@@ scans the macro body with arguments substituted.
-        \expandafter\xdef\csname\the\macname\endcsname{%
-          \bgroup
-          \noexpand\expandafter  % This \expandafter skip any spaces after the
-          \noexpand\macroargctxt % macro before we change the catcode of space.
-          \noexpand\expandafter
-          \expandafter\noexpand\csname\the\macname @@\endcsname}%
-        \expandafter\xdef\csname\the\macname @@\endcsname##1{%
-            \noexpand\passargtomacro
-            \expandafter\noexpand\csname\the\macname @@@\endcsname{##1,}}%
-        \expandafter\xdef\csname\the\macname @@@\endcsname##1{%
-            \expandafter\noexpand\csname\the\macname @@@@\endcsname ##1}%
-        \expandafter\expandafter
-        \expandafter\xdef
-        \expandafter\expandafter
-          \csname\the\macname @@@@\endcsname\paramlist{%
-            \egroup\noexpand\scanmacro{\macrobody}}%
-      \else % 10 or more:
-        \expandafter\xdef\csname\the\macname\endcsname{%
-          \noexpand\getargvals@{\the\macname}{\argl}%
-        }%
-        \global\expandafter\let\csname mac.\the\macname .body\endcsname\macrobody
-        \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\norecurse
-      \fi
+        \noexpand\getargvals@{\the\macname}{\argl}%
+      }%
+      \global\expandafter\let\csname mac.\the\macname .body\endcsname\macrobody
+      \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\gobble
     \fi
   \fi}
 
@@ -8871,6 +8895,9 @@ end
          % In this case, the replaced destination names of
          % remote PDF cannot be known. In order to avoid replacement,
          % you can use commandline option `-C 0x0010' for xdvipdfmx.
+         % If you use XeTeX 0.99996+ (TeX Live 2016+),
+         % the commandline option is not neccesary
+         % because we can use `dvipdfmx:config' special.
          \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A
            << /S /GoToR /F (\the\filename.pdf) /D (name\pdfxrefdest) >> >>}%
        \else
@@ -10227,7 +10254,7 @@ directory should work if nowhere else does.}
   \countUTFx = "80
   \countUTFy = "C2
   \def\UTFviiiTmp{%
-    \gdef~{
+    \gdef~{%
         \ifpassthroughchars $\fi}}%
   \UTFviiiLoop
 
@@ -10278,6 +10305,15 @@ directory should work if nowhere else does.}
   \fi
 }
 
+% These macros are used here to construct the name of a control
+% sequence to be defined.
+\def\UTFviiiTwoOctetsName#1#2{%
+  \csname u8:#1\string #2\endcsname}%
+\def\UTFviiiThreeOctetsName#1#2#3{%
+  \csname u8:#1\string #2\string #3\endcsname}%
+\def\UTFviiiFourOctetsName#1#2#3#4{%
+  \csname u8:#1\string #2\string #3\string #4\endcsname}%
+
 % For UTF-8 byte sequence (TeX, e-TeX and pdfTeX)
 % Definition macro to replace the Unicode character
 % Definition macro that is used by @U command
@@ -10294,17 +10330,18 @@ directory should work if nowhere else does.}
     \countUTFz = "#1\relax
     \begingroup
       \parseXMLCharref
+    
+      % Give \u8:... its definition.  The sequence of seven \expandafter's
+      % expands after the \gdef three times, e.g.
       %
-      % Access definitions of characters given UTF-8 sequences
-      \def\UTFviiiTwoOctets##1##2{%
-        \csname u8:##1\string ##2\endcsname}%
-      \def\UTFviiiThreeOctets##1##2##3{%
-        \csname u8:##1\string ##2\string ##3\endcsname}%
-      \def\UTFviiiFourOctets##1##2##3##4{%
-        \csname u8:##1\string ##2\string ##3\string ##4\endcsname}%
-      \expandafter\expandafter\expandafter\expandafter
-       \expandafter\expandafter\expandafter
-       \gdef\UTFviiiTmp{#2}%
+      % 1.  \UTFviiTwoOctetsName B1 B2
+      % 2.  \csname u8:B1 \string B2 \endcsname
+      % 3.  \u8: B1 B2  (a single control sequence token)
+      %
+      \expandafter\expandafter
+      \expandafter\expandafter
+      \expandafter\expandafter
+      \expandafter\gdef       \UTFviiiTmp{#2}%
       % 
       \expandafter\ifx\csname uni:#1\endcsname \relax \else
        \message{Internal error, already defined: #1}%
@@ -10314,37 +10351,53 @@ directory should work if nowhere else does.}
       \expandafter\globallet\csname uni:#1\endcsname \UTFviiiTmp
     \endgroup}
   %
-  % Given the value in \countUTFz as a Unicode code point, set \UTFviiiTmp.
+  % Given the value in \countUTFz as a Unicode code point, set \UTFviiiTmp
+  % to the corresponding UTF-8 sequence.
   \gdef\parseXMLCharref{%
     \ifnum\countUTFz < "A0\relax
       \errhelp = \EMsimple
       \errmessage{Cannot define Unicode char value < 00A0}%
     \else\ifnum\countUTFz < "800\relax
       \parseUTFviiiA,%
-      \parseUTFviiiB C\UTFviiiTwoOctets.,%
+      \parseUTFviiiB C\UTFviiiTwoOctetsName.,%
     \else\ifnum\countUTFz < "10000\relax
       \parseUTFviiiA;%
       \parseUTFviiiA,%
-      \parseUTFviiiB E\UTFviiiThreeOctets.{,;}%
+      \parseUTFviiiB E\UTFviiiThreeOctetsName.{,;}%
     \else
       \parseUTFviiiA;%
       \parseUTFviiiA,%
       \parseUTFviiiA!%
-      \parseUTFviiiB F\UTFviiiFourOctets.{!,;}%
+      \parseUTFviiiB F\UTFviiiFourOctetsName.{!,;}%
     \fi\fi\fi
   }
 
+  % Extract a byte from the end of the UTF-8 representation of \countUTFx.
+  % It must be a non-initial byte in the sequence.
+  % Change \uccode of #1 for it to be used in \parseUTFviiiB as one
+  % of the bytes.
   \gdef\parseUTFviiiA#1{%
     \countUTFx = \countUTFz
     \divide\countUTFz by 64
-    \countUTFy = \countUTFz
+    \countUTFy = \countUTFz  % Save to be the future value of \countUTFz.
     \multiply\countUTFz by 64
+    
+    % \countUTFz is now \countUTFx with the last 5 bits cleared.  Subtract
+    % in order to get the last five bits.
     \advance\countUTFx by -\countUTFz
+
+    % Convert this to the byte in the UTF-8 sequence.
     \advance\countUTFx by 128
     \uccode `#1\countUTFx
     \countUTFz = \countUTFy}
 
-  % Used to set \UTFviiiTmp to a UTF-8 byte sequence
+  % Used to put a UTF-8 byte sequence into \UTFviiiTmp
+  % #1 is the increment for \countUTFz to yield a the first byte of the UTF-8
+  %    sequence.
+  % #2 is one of the \UTFviii*OctetsName macros.
+  % #3 is always a full stop (.)
+  % #4 is a template for the other bytes in the sequence.  The values for these
+  %    bytes is substituted in here with \uppercase using the \uccode's.
   \gdef\parseUTFviiiB#1#2#3#4{%
     \advance\countUTFz by "#10\relax
     \uccode `#3\countUTFz