--- /dev/null
+<html>
+<!-- This page is automatically generated by translation-status.py from
+translations.template.html; DO NOT EDIT !-->
+<!--
+ Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+ When revising a translation, copy the HEAD committish of the
+ version that you are working on. See TRANSLATION for details.
+!-->
+<head>
+ <title>LilyPond documentation translations status</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+
+<body>
+<p><a href="index.html">Up to documentation index</a></p>
+
+<h1>Documentation translations status</h1>
+
+<p>This is an overview of which parts of LilyPond @TOPLEVEL_VERSION@
+ documentation are translated; for each documentation section, you
+ can read the word count in parentheses, who translated and verified
+ it (translation checkers are printed with a smaller font size), how
+ much of the original section in English has been translation, how
+ up-to-date is the translation, and whether the translation has
+ already been updated after Grand Documentation Project (GDP) was
+ started.
+</p>
+
+<p>Please note that GDP makes a lot of changes to documentation in
+ English, therefore translated documentation is mostly not
+ up-to-date; however, this does not mean translated documentation is
+ inaccurate regarding current LilyPond version, it only means that
+ translated docmentation is not synced with documentation in English.
+ We do our best to keep translated documentation consistent with
+ current LilyPond syntax and features, and will update it per
+ section, when GDP processing of the corresponding section in English
+ is finished.
+</p>
+
+ <p><i>Last updated Tue Feb 26 15:43:29 UTC 2008
+</i></p>
+<table align="center" border="2">
+ <tr align="center">
+ <th>GNU LilyPond --- learning manual</th> <th>fr</th>
+ <th>de</th>
+ <th>es</th>
+ </tr>
+ <tr align="left">
+ <td>Section titles<br>(406)</td>
+ <td>John Mandereau<br>
+ Jean-Charles Malahieude<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #4efe25">partially up-to-date (93 %)</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>Preface<br>(411)</td>
+ <td>Valentin Villenave<br>
+ <small>Ludovic Sardain</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1 Introduction<br>(3198)</td>
+ <td>Ludovic Sardain<br>
+ John Mandereau<br>
+ <small>Jean-Charles Malahieude<br>
+ Jean-Yves Baudais</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #39ff22">partially up-to-date (96 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #39ff22">partially up-to-date (96 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #d587ff"></span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2 Tutorial<br>(5593)</td>
+ <td>Nicolas Grandclaude<br>
+ Ludovic Sardain<br>
+ Gauvain Pocentek<br>
+ <small>Jean-Charles Malahieude<br>
+ Valentin Villenave<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ff8f50">partially up-to-date (23 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #40fe23">partially up-to-date (95 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>3 Fundamental concepts<br>(8626)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #dfef77">partially translated (39 %)</span><br>
+ <span style="background-color: #a5ff31">partially up-to-date (80 %)</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>4 Tweaking output<br>(11862)</td>
+ <td>Valentin Villenave<br>
+ Nicolas Klutchnikoff<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #dfef77">partially translated (16 %)</span><br>
+ <span style="background-color: #ff6f57">partially up-to-date (9 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (16 %)</span><br>
+ <span style="background-color: #ff6f57">partially up-to-date (9 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (16 %)</span><br>
+ <span style="background-color: #d587ff"></span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>5 Working on LilyPond projects<br>(2985)</td>
+ <td>Ludovic Sardain<br>
+ <small>Jean-Yves Baudais<br>
+ Valentin Villenave<br>
+ John Mandereau<br>
+ Jean-Charles Malahieude</small><br>
+ <span style="background-color: #dfef77">partially translated (79 %)</span><br>
+ <span style="background-color: #7dff2b">partially up-to-date (86 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (79 %)</span><br>
+ <span style="background-color: #7dff2b">partially up-to-date (86 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (79 %)</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>A Templates<br>(297)</td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ff9150">partially up-to-date (24 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #d587ff"></span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>B Scheme tutorial<br>(960)</td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (91 %)</span><br>
+ <span style="background-color: #83fe2c">partially up-to-date (85 %)</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ </tr>
+</table>
+<p></p>
+
+<table align="center" border="2">
+ <tr align="center">
+ <th>GNU LilyPond --- program usage</th> <th>fr</th>
+ <th>de</th>
+ <th>es</th>
+ </tr>
+ <tr align="left">
+ <td>Section titles<br>(384)</td>
+ <td>John Mandereau<br>
+ Jean-Charles Malahieude<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #4efe25">partially up-to-date (93 %)</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1 Install<br>(1477)</td>
+ <td>John Mandereau<br>
+ Jean-Charles Malahieude<br>
+ <span style="background-color: #dfef77">partially translated (11 %)</span><br>
+ <span style="background-color: #39ff22">partially up-to-date (96 %)</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (11 %)</span><br>
+ <span style="background-color: #6fff29">partially up-to-date (88 %)</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2 Setup<br>(947)</td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #39ff22">partially up-to-date (96 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #d587ff"></span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>3 Running LilyPond<br>(2860)</td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>4 @command{lilypond-book}: Integrating text and music<br>(2840)</td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>5 Converting from other formats<br>(975)</td>
+ <td>Jean-Charles Malahieude<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ </tr>
+</table>
+<p></p>
+
+<table align="center" border="2">
+ <tr align="center">
+ <th>GNU LilyPond --- The music typesetter</th> <th>fr</th>
+ <th>de</th>
+ <th>es</th>
+ </tr>
+ <tr align="left">
+ <td>Section titles<br>(549)</td>
+ <td>John Mandereau<br>
+ Jean-Charles Malahieude<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #7dff2b">partially up-to-date (86 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #7dff2b">partially up-to-date (86 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #39ff22">partially up-to-date (96 %)</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1 Musical notation<br>(91)</td>
+ <td>John Mandereau<br>
+ Jean-Charles Malahieude<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #acff31">partially up-to-date (79 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #acff31">partially up-to-date (79 %)</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1.1 Pitches<br>(2808)</td>
+ <td>Frédéric Chiasson<br>
+ <small>Valentin Villenave<br>
+ Jean-Charles Malahieude</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ff7855">partially up-to-date (13 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ff7855">partially up-to-date (13 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1.2 Rhythms<br>(7056)</td>
+ <td>Frédéric Chiasson<br>
+ <small>Valentin Villenave<br>
+ Jean-Charles Malahieude</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ff9c4e">partially up-to-date (29 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (82 %)</span><br>
+ <span style="background-color: #ff9c4e">partially up-to-date (29 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (87 %)</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1.3 Expressive marks<br>(1602)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ff9c4e">partially up-to-date (29 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ff9c4e">partially up-to-date (29 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #91ff2e">partially up-to-date (83 %)</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1.4 Repeats<br>(717)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ffb549">partially up-to-date (39 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ffb549">partially up-to-date (39 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1.5 Simultaneous notes<br>(916)</td>
+ <td>Frédéric Chiasson<br>
+ Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ffb549">partially up-to-date (39 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (58 %)</span><br>
+ <span style="background-color: #ffb549">partially up-to-date (39 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (58 %)</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1.6 Staff notation<br>(1637)</td>
+ <td>Valentin Villenave<br>
+ Jean-Charles Malahieude<br>
+ <small>John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ffba48">partially up-to-date (41 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (49 %)</span><br>
+ <span style="background-color: #ffba48">partially up-to-date (41 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1.7 Editorial annotations<br>(866)</td>
+ <td>Jean-Charles Malahieude<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ff6f57">partially up-to-date (9 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (38 %)</span><br>
+ <span style="background-color: #ff6f57">partially up-to-date (9 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (95 %)</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1.8 Text<br>(2329)</td>
+ <td>Jean-Charles Malahieude<br>
+ <small>Valentin Villenave<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ffb549">partially up-to-date (39 %)</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2 Specialist notation<br>(54)</td>
+ <td>John Mandereau<br>
+ Jean-Charles Malahieude<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #f6fe3b">partially up-to-date (68 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #f6fe3b">partially up-to-date (68 %)</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2.1 Vocal music<br>(2630)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude</small><br>
+ <span style="background-color: #dfef77">partially translated (89 %)</span><br>
+ <span style="background-color: #68ff28">partially up-to-date (89 %)</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (89 %)</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2.2 Chords<br>(1275)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #dfef77">partially translated (56 %)</span><br>
+ <span style="background-color: #76fe2a">partially up-to-date (87 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (56 %)</span><br>
+ <span style="background-color: #76fe2a">partially up-to-date (87 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (56 %)</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2.3 Piano music<br>(702)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #68ff28">partially up-to-date (89 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #68ff28">partially up-to-date (89 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2.4 Percussion<br>(481)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #54ff26">partially up-to-date (92 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #54ff26">partially up-to-date (92 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2.5 Guitar<br>(826)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #5bff27">partially up-to-date (91 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #5bff27">partially up-to-date (91 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2.6 Orchestral strings<br>(66)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ffef3f">partially up-to-date (61 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ffef3f">partially up-to-date (61 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ffef3f">partially up-to-date (61 %)</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2.7 Bagpipes<br>(242)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #a5ff31">partially up-to-date (80 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (94 %)</span><br>
+ <span style="background-color: #a5ff31">partially up-to-date (80 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #a5ff31">partially up-to-date (80 %)</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2.8 Ancient notation<br>(4289)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #dfef77">partially translated (88 %)</span><br>
+ <span style="background-color: #47ff24">partially up-to-date (94 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (88 %)</span><br>
+ <span style="background-color: #47ff24">partially up-to-date (94 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (88 %)</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>3 Input syntax<br>(2448)</td>
+ <td>Jean-Charles Malahieude<br>
+ <span style="background-color: #dfef77">partially translated (7 %)</span><br>
+ <span style="background-color: #25fe1f">partially up-to-date (99 %)</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>4 Non-musical notation<br>(2164)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude</small><br>
+ <span style="background-color: #dfef77">partially translated (4 %)</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (3 %)</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>5 Spacing issues<br>(8399)</td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>6 Changing defaults<br>(5105)</td>
+ <td>Valentin Villenave<br>
+ <small>Gilles Thibault</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #b9ff33">partially up-to-date (77 %)</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>7 Interfaces for programmers<br>(4547)</td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>A Literature list<br>(299)</td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>B Notation manual tables<br>(935)</td>
+ <td>Frédéric Chiasson<br>
+ Jean-Charles Malahieude<br>
+ <span style="background-color: #dfef77">partially translated (13 %)</span><br>
+ <span style="background-color: #4efe25">partially up-to-date (93 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (84 %)</span><br>
+ <span style="background-color: #62ff28">partially up-to-date (90 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (97 %)</span><br>
+ <span style="background-color: #d587ff"></span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>C Cheat sheet<br>(250)</td>
+ <td>Valentin Villenave<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #d587ff"></span><br>
+ </td>
+ </tr>
+</table>
+<p></p>
+
+</body>
+</html>
convert-ly -e --from=... --to=... --no-version *.itely
% to find the current version number,
-grep "version \"" fundamental.itely
+grep "version \"" tutorial.itely
Please don't forget updating translated docs (in LANGS/user) too!
A variety of symbols can appear above and below notes to indicate
different characteristics of the performance. All these symbols
can be attached to a note using the syntax
-@var{note}@code{\}@var{name}.
+@var{note}@tie{}@code{\}@var{name}.
+
+@c Add a LilyPond example here soon. -pm
The possible values for @var{name} are listed in @ref{List of
articulations}.
+@cindex marcato
+@cindex stopped
+@cindex tenuto
+@cindex staccatissimo
+@cindex accent
+@cindex staccato
+@cindex portato
+
Some of these articulations have shorthands for easier entry.
Shorthands are appended to the note name, and their syntax
-consists of a dash (@code{-}) followed by a symbol signifying the
-articulation. The available shorthands are:
-
-@itemize
-@item
-@code{-^} (@notation{marcato})
-
-@item
-@code{-+} (@notation{stopped})
-
-@item
-@code{--} (@notation{tenuto})
-
-@item
-@code{-|} (@notation{staccatissimo})
-
-@item
-@code{->} (@notation{accent})
-
-@item
-@code{-.} (@notation{staccato})
-
-@item
-@code{-_} (@notation{portato})
-
-@end itemize
-
-and their corresponding output:
+consists of a dash (@tie{}@code{-}) followed by a symbol
+signifying the articulation. Predefined shorthands exist for
+@notation{marcato}, @notation{stopped}, @notation{tenuto},
+@notation{staccatissimo}, @notation{accent}, @notation{staccato},
+and @notation{portato}. Their corresponding output appears as
+follows:
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
c4-^ c-+ c-- c-|
c-> c-. c-_
@end lilypond
-The marks are automatically placed, but the direction can be
-forced as well. Like other pieces of LilyPond code,
-@code{_}@tie{}will place them below the staff, and@tie{}@code{^}
-will place them above. This applies both to the shorthands and
-the fully named articulations. For the shorthands, the dash
-itself should be omitted; the direction signs replace it:
-
-@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
-c4^^ c4_^
-c\fermata c^\fermata c_\fermata
-@end lilypond
+The marks are placed automatically by default (either above or
+below the note), but their positions can be manually @q{forced}
+above or below notes as well. For details, see
+@ref{Controlling direction and placement}.
-
-@cindex accent
-@cindex marcato
-@cindex staccatissimo
@cindex espressivo
@cindex fermata
-@cindex stopped
-@cindex staccato
-@cindex portato
-@cindex tenuto
@cindex upbow
@cindex downbow
@cindex foot marks
@snippets
+@c Send these snippets to Valentin for the LSR.
+
The shorthands are defined in @file{ly/@/script@/-init@/.ly},
where the variables @code{dashHat}, @code{dashPlus},
@code{dashDash}, @code{dashBar}, @code{dashLarger},
@seealso
+Music Glossary: @rglos{marcato}, @rglos{stopped}, @rglos{tenuto},
+@rglos{staccatissimo}, @rglos{accent}, @rglos{staccato},
+@rglos{portato}.
+
Snippets: @lsrdir{Expressive,Expressive-marks}
Internals Reference: @internalsref{Script},
@code{\mf}, @code{\f}, @code{\ff}, @code{\fff}, @code{\ffff},
@code{\fp}, @code{\sf}, @code{\sff}, @code{\sp}, @code{\spp},
@code{\sfz}, and @code{\rfz}. The dynamic marks can be placed
-above or below the staff with@tie{}@code{_} and@tie{}@code{^},
-just like articulation marks.
+above or below the staff: For details, see
+@ref{Controlling direction and placement}.
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
c2\ppp c\mp
c_\spp c_\staccato^\ff
@end lilypond
+@cindex hairpin
@funindex \<
@funindex \>
@funindex \!
+@funindex \cr
+@funindex \decr
A @notation{crescendo} mark is started with @code{\<} and
terminated with @code{\!} or an absolute dynamic. A
@notation{decrescendo} is started with @code{\>} and is also
terminated with @code{\!} or an absolute dynamic. @code{\cr} and
@code{\decr} may be used instead of @code{\<} and @code{\>}. They
-can be engraved either using a graphical sign (a @q{hairpin}), or
-with textual signs.
+can be engraved either using a graphical sign (a
+@notation{hairpin}), or with textual signs.
Because these marks are bound to notes, you must use spacer notes
if multiple marks are needed during one note.
@end example
@noindent
-A hairpin normally starts at the left edge of the beginning note
-and ends on the right edge of the ending note. If the ending note
-falls on the downbeat, the hairpin ends on the immediately
-preceding bar line. This may be modified by setting the
-@code{hairpinToBarline} property:
-@cindex hairpin
+A @notation{hairpin} normally starts at the left edge of the
+beginning note and ends on the right edge of the ending note. If
+the ending note falls on the downbeat, the @notation{hairpin} ends
+on the immediately preceding bar line. This may be modified by
+setting the @code{hairpinToBarline} property:
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
e4\< e2. e1\!
@end lilypond
@cindex espressivo, articulation
+
In some situations the @code{\espressivo} articulation mark may be
suitable to indicate a crescendo and decrescendo on the one note:
@cindex crescendo
@cindex decrescendo
@cindex diminuendo
+@funindex \setTextCresc
+@funindex \setTextDim
+@funindex \setTextDecresc
+@funindex \setHairpinCresc
+@funindex \setHairpinDim
+@funindex \setHairpinDecresc
You can use text saying @emph{cresc.}, @emph{decr.}, or
-@emph{dim.} instead of hairpins with the commands \setTextCresc,
-\setTextDim, and \setTextDecresc. The corresponding
-\setHairpinCresc, \setHairpinDim, and \setHairpinDecresc will
-revert to hairpins again:
+@emph{dim.} instead of hairpins with the commands
+@code{\setTextCresc}, @code{\setTextDim}, and
+@code{\setTextDecresc}. The corresponding
+@code{\setHairpinCresc}, @code{\setHairpinDim}, and
+@code{\setHairpinDecresc} will revert to hairpins again:
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
\setTextCresc
@cindex slurs
-A slur indicates that notes are to be played bound or
+A @notation{slur} indicates that notes are to be played bound or
@emph{legato}. They are entered using parentheses:
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
Just as with ties, the direction of a slur can be specified with
@code{\slur@emph{DIR}}, where @code{@emph{DIR}} is either
-@code{Up}, @code{Down}, or @code{Neutral} (automatically
-selected). The shorthands are also available: by
-adding@tie{}@code{_} or@tie{}@code{^} before the opening
-parentheses, the direction is also set.
+@code{Up}, @code{Down}, or @code{Neutral} (@code{Neutral} is the
+default). The shorthands are also available: For details, see
+@ref{Controlling direction and placement}.
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
c4_( c) c^( c)
@end lilypond
-Only one slur can be printed at once. If you need to print a long
-slur over a few small slurs, please see @ref{Phrasing slurs}.
+Using this method, only one slur can be printed at once. To print
+a long slur over a few small slurs, see @ref{Phrasing slurs}.
@predefined
@seealso
+Music Glossary: @rglos{slur}
+
Snippets: @lsrdir{Expressive,Expressive-marks}
Internals Reference: @internalsref{Slur}.
@cindex phrasing slurs
@cindex phrasing marks
+@funindex \(
+@funindex \)
A phrasing slur (or phrasing mark) connects notes and is used to
indicate a musical sentence. It is written using @code{\(} and
normal slur. However, they are treated as different objects. A
@code{\slurUp} will have no effect on a phrasing slur; instead,
use @code{\phrasingSlurUp}, @code{\phrasingSlurDown}, and
-@code{\phrasingSlurNeutral}, or use the shorthands@tie{}@code{_}
-and@tie{}@code{^}.
+@code{\phrasingSlurNeutral}. The shorthands work for phrasing
+slurs as well: For details, see @ref{Controlling direction and placement}.
You cannot have simultaneous phrasing slurs.
Snippets: @lsrdir{Expressive,Expressive-marks}
-Internals Reference: @internalsref{PhrasingSlur}.
+Internals Reference: @internalsref{PhrasingSlur}
@node Breath marks
@subsubsection Breath marks
+@cindex breath marks
+@funindex \breathe
+
Breath marks are entered using @code{\breathe}:
@lilypond[verbatim,quote,ragged-right,fragment,relative=1]
@seealso
-Snippets: @lsrdir{Expressive,Expressive-marks},
+Snippets: @lsrdir{Expressive,Expressive-marks}
@c @lsr{expressive,breathing-sign.ly}.
-Internals Reference: @internalsref{BreathingSign}.
+Internals Reference: @internalsref{BreathingSign}
@node Falls and doits
@subsubsection Falls and doits
-Falls and doits can be added to notes using the @code{\bendAfter}
-command,
+@cindex falls
+@cindex doits
+@funindex \bendAfter
+
+@notation{Falls} and @notation{doits} can be added to notes using
+the @code{\bendAfter} command,
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
\override Score.SpacingSpanner #'shortest-duration-space = #3.0
c4-\bendAfter #-3
@end lilypond
+
+@seealso
+
+Music Glossary: @rglos{falls}, @rglos{doits}.
+
+Snippets: @lsrdir{Expressive,Expressive-marks}
+
+
@node Lines
@subsection Lines
@cindex glissando
@funindex \glissando
-A glissando is a smooth change in pitch. It is denoted by a line
-or a wavy line between two notes. It is requested by attaching
-@code{\glissando} to a note:
+A @notation{glissando} is a smooth change in pitch. It is denoted
+by a line or a wavy line between two notes. A
+@notation{glissando} is created by attaching @code{\glissando} to
+a note:
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
c2\glissando c'
c2\glissando c,
@end lilypond
-@snippets
+@snippets
@lilypond[verbatim,quote,ragged-right]
I = \once \override NoteColumn #'ignore-collision = ##t
@end lilypond
-
@seealso
-Music Glossary: @rglos{falls}, @rglos{doits}.
+Music Glossary: @rglos{glissando}
-Snippets: @lsrdir{Expressive,Expressive-marks}.
+Snippets: @lsrdir{Expressive,Expressive-marks}
@c FIXME: I need to figure out what's up with these. -gp
@c @lsr{expressive,glissando.ly},
@c @lsr{expressive,line-styles.ly}
-Internals Reference: @internalsref{Glissando}.
+Internals Reference: @internalsref{Glissando}
@knownissues
@cindex broken chord
@funindex \arpeggio
-You can specify an arpeggio sign (also known as broken chord) on a
-chord by attaching an @code{\arpeggio} to the chord:
+You can specify an @notation{arpeggio} (also known as a
+@notation{broken chord}) on a chord by attaching an
+@code{\arpeggio} to the chord:
@lilypond[verbatim,quote,ragged-right,fragment,relative=1]
<c e g c>\arpeggio
@end lilypond
-A square bracket on the left is used to indicate that the chord
-should @emph{not} be arpeggiated:
+A square bracket on the left, denoted by @code{\arpeggioBracket},
+is used to indicate that the chord should @emph{not} be
+arpeggiated:
@lilypond[verbatim,quote,ragged-right,fragment,relative=1]
\arpeggioBracket
@predefined
-@code{\arpeggio},
@funindex \arpeggioUp
@code{\arpeggioUp},
@funindex \arpeggioDown
@seealso
+Music Glossary: @rglos{arpeggio}, @rglos{broken chord}.
+
Notation Reference: @ref{Ties}, for writing out arpeggios.
Snippets: @lsrdir{Expressive,Expressive-marks}
@node Trills
@subsubsection Trills
-Short trills are printed with @code{\trill} like normal
+@cindex trills
+@funindex \trill
+
+Short @notation{trills} are printed with @code{\trill} like normal
articulation; see @ref{Articulations and ornamentations}.
Long running trills are made with @code{\startTrillSpan} and
@cindex pitched trills
Trills that should be executed on an explicitly specified pitch
-can be typeset with the command @code{pitchedTrill}, and the
-syntax @code{\pitchedTrill} @var{mainnote}@code{\startTrillSpan}
+can be typeset with the command @code{\pitchedTrill}, and the
+syntax @code{\pitchedTrill} @var{mainnote} @code{\startTrillSpan}
@var{trillnote} @var{endnote} @code{\stopTrillSpan}.
@lilypond[verbatim,quote,ragged-right,fragment,relative=1]
@seealso
+Music Glossary: @rglos{trill}
+
Snippets: @lsrdir{Expressive,Expressive-marks}
-Internals Reference: @internalsref{TrillSpanner}.
+Internals Reference: @internalsref{TrillSpanner}
A basic example of a lilypond input file is
@example
-\version @w{"@version{}"}
+\version "2.11.38"
\score @{
@var{...compound music expression...} % all the music goes here!
\header @{ @}
soprano part).
@example
-\version @w{"@version{}"}
+\version "2.11.38"
melody = \relative c' @{
\clef treble
\key c \major
Now we want to add a cello part. Let's look at the @q{Notes only} example:
@example
-\version @w{"@version{}"}
+\version "2.11.38"
melody = \relative c' @{
\clef treble
\key c \major
different notes.
@example
-\version @w{"@version{}"}
+\version "2.11.38"
sopranoMusic = \relative c' @{
\clef treble
\key c \major
easily fixed. Here's the complete soprano and cello template.
@lilypond[quote,verbatim,ragged-right]
-\version "2.11.38"
+\version "2.11.37"
sopranoMusic = \relative c' {
\clef treble
\key c \major
@c The following should appear as music without code
@lilypond[quote,ragged-right]
+\version "2.11.38"
global = { \key d \major \time 4/4 }
sopMusic = \relative c'' {
\clef "treble"
and key:
@example
-\version @w{"@version{}"}
+\version "2.11.38"
\header @{
title = "Jesu, meine Freude"
composer = "J S Bach"
@section Common syntax issues TODO name?
@menu
-* Controlling direction::
+* Controlling direction and placement::
* Distances and measurements MAYBE MOVE::
+* When to add a -::
@end menu
-@node Controlling direction
-@subsection Controlling direction
+@node Controlling direction and placement
+@subsection Controlling direction and placement
TODO: everything
TODO: staff spaces, #UP #DOWN #LEFT #RIGHT. Maybe move into tweaks?
+@node When to add a -
+@subsection When to add a -
+One of these works, the other doesn't.
+
+@verbatim
+\version "2.11.38"
+{ c'\mp\fermata\accent-\markup { "forcefully"} }
+% { c'\mp\fermata\accent\markup { "forcefully"} }
+@end verbatim
@node Other stuffs TODO move?
Save the code above to a file called @file{lilybook.lytex}, then in a
terminal run
-@c keep space after @version{} so TeX doesn't choke
@example
lilypond-book --output=out --pdf lilybook.lytex
-@emph{lilypond-book (GNU LilyPond) @version{} }
+@emph{lilypond-book (GNU LilyPond) 2.11.37}
@emph{Reading lilybook.lytex...}
@emph{..lots of stuff deleted..}
@emph{Compiling lilybook.tex...}
@documentencoding UTF-8
@documentlanguage en
-@include macros.itexi
-
@iftex
@afourpaper
@c don't replace quotes with directed quotes
@vskip 20pt
-For LilyPond version @version{}
+@lilypond[ragged-right]
+\score {
+ \context Lyrics {
+ \override Score.RehearsalMark #'self-alignment-X = #LEFT
+ \override Score.RehearsalMark #'font-size = #-2
+ \mark #(ly:export (string-append
+ "(For LilyPond version " (lilypond-version) ")"))
+ s2
+ }
+ \layout {
+ indent = 0.0\pt
+ }
+}
+@end lilypond
+
@end titlepage
@copying
@top GNU LilyPond --- learning manual
@c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX.
-This is the learning manual for GNU LilyPond version @version{}.
+This is the learning manual for GNU LilyPond 2.11.x series.
+@ifhtml
+(See the bottom of this page for the exact version number).
+@end ifhtml
@cindex web site
@cindex URL
@contents
+@include macros.itexi
+
@include preface.itely
@include introduction.itely
@include tutorial.itely
@documentencoding UTF-8
@documentlanguage en
-@include macros.itexi
-
@iftex
@afourpaper
@c don't replace quotes with directed quotes
@vskip 20pt
-For LilyPond version @version{}
+@lilypond[ragged-right]
+\score {
+ \context Lyrics {
+ \override Score.RehearsalMark #'self-alignment-X = #LEFT
+ \override Score.RehearsalMark #'font-size = #-2
+ \mark #(ly:export (string-append
+ "(For LilyPond version " (lilypond-version) ")"))
+ s2
+ }
+ \layout {
+ indent = 0.0\pt
+ }
+}
+@end lilypond
+
@end titlepage
@copying
@top GNU LilyPond --- program usage
@c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX.
-This is the program usage manual for GNU LilyPond version @version{}.
+This is the program usage manual for GNU LilyPond 2.11.x series.
+@ifhtml
+(See the bottom of this page for the exact version number).
+@end ifhtml
@cindex web site
@cindex URL
@contents
+@include macros.itexi
+
@include install.itely
@include setup.itely
@include running.itely
@documentencoding UTF-8
@documentlanguage en
-@include macros.itexi
-
@iftex
@afourpaper
@c don't replace quotes with directed quotes
@vskip 20pt
-For LilyPond version @version{}
+@lilypond[ragged-right]
+\score {
+ \context Lyrics {
+ \override Score.RehearsalMark #'self-alignment-X = #LEFT
+ \override Score.RehearsalMark #'font-size = #-2
+ \mark #(ly:export (string-append
+ "(For LilyPond version " (lilypond-version) ")"))
+ s2
+ }
+ \layout {
+ indent = 0.0\pt
+ }
+}
+@end lilypond
+
@end titlepage
@copying
@top GNU LilyPond --- The music typesetter
@c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX.
-This is the user manual for GNU LilyPond version @version{}.
+This is the user manual for GNU LilyPond 2.11.x series.
+@ifhtml
+(See the bottom of this page for the exact version number).
+@end ifhtml
@cindex web site
@cindex URL
@contents
+@include macros.itexi
+
@include notation.itely
@include specialist.itely
@end ignore
@macro version
-@value{version}
+@c @value{version}
+2.11.41
@end macro
@c ***** Displaying text *****
@end lilypond
@item piano
-@funindex piano accidentals
+@cindex piano accidentals
@cindex piano accidentals
@cindex accidentals, piano
@cindex piano accidental style
Concepts''), so do not repeat that material in each section of
this book. Also watch out for common constructs, like ^ - _ for
directions -- those are explained in NR 3. In NR 1, you can
-mention that "dynamics (or whatever) may be placed above or below
-the staff, for details see @ref{Up and down}".
+write:
+Dynamics (or whatever) may be manually placed above or below the
+staff, for details see @ref{Controlling direction and placement}".
Most tweaks should be added to LSR and not placed directly in the
.itely file. In some cases, tweaks may be placed in the main
@funindex tupletNumberFormatFunction
@funindex tupletSpannerDuration
-@lilypondfile [ragged-right,line-width=16\cm,staffsize=14,quote]
+@lilypondfile [verbatim,lilyquote,ragged-right,texidoc]
{entering-several-tuplets-using-only-one--times-command.ly}
@ignore
notation, as shown in the following example. See
@ref{Polymetric notation}.
-@lilypondfile [ragged-right,line-width=16\cm,staffsize=14,quote]
+@lilypondfile [verbatim,lilyquote,ragged-right,texidoc]
{printing-music-with-different-time-signatures.ly}
@end lilypond
The vertical placement of ties may be controlled; see
-@ref{Controlling direction}.
+@ref{Controlling direction and placement}.
@quotation
DELETE THIS ?
+
works in practice. Starting from a B, which is on the middle line
in a treble clef, you can reach a C, D and E within 3 staff spaces
going up, and an A, G and F within 3 staff spaces going down. So
-if the note following a B is a C, D or F it will be assumed to be
+if the note following a B is a C, D or E it will be assumed to be
above the B, and an A, G or F will be assumed to be below.
@lilypond[verbatim,quote,ragged-right]
was used to write the file:
@example
-\version @w{"@version{}"}
+\version "2.11.38"
@end example
@noindent
underneath the @ref{Version number}.
@example
-\version @w{"@version{}"}
+\version "2.11.38"
\header @{
title = "Symphony"
composer = "Me"
@node Tweaking methods
@subsection Tweaking methods
-@itemize
-@item @strong{override command}
+@strong{\override command}
@cindex override command
@funindex \override
@emph{context} is often not needed. It will be omitted
in many of the following examples.
-@item @strong{overrideProperty command}
+@strong{\overrideProperty command}
@cindex overrideProperty command
@funindex \overrideProperty
@ruser{Difficult tweaks}.
@c Maybe explain in a later iteration -td
-@item @strong{tweak command}
+@strong{\tweak command}
@cindex tweak command
@funindex \tweak
occur at the same musical moment, such as the notes within a
chord. Using @code{\override} would affect all the notes
within a chord, whereas @code{\tweak} affects just the following
-item in the input stream.
+item in the input stream.
-Here's an example. Suppose we wish to change the size of the
+Here's an example. Suppose we wish to change the size of the
middle note (the E) in a C major chord. Let's first see what
@code{\once \override} would do:
it is effective only on objects which are created directly from
the input stream, essentially note heads and articulations.
(Objects such as stems and accidentals are created later and
-cannot be tweaked in this way). Furthermore, when it is applied
-to note heads these must be within a chord, i.e., within single
+cannot be tweaked in this way). Furthermore, when it is applied
+to note heads these must be within a chord, i.e., within single
angle brackets, so to tweak a single note the @code{\tweak}
command must be placed inside single angle brackets with the
note.
<c \tweak #'font-size #-3 e g>4
@end lilypond
-Just one in a series of articulations can be modified with
-@code{\tweak}, as shown here:
+Note that the syntax of @code{\tweak} is different from that
+of the @code{\override} command. Neither the context nor the
+layout object should be specified; in fact, it would generate
+an error to do so. These are both implied by the following
+item in the input stream. So the general syntax of the
+@code{\tweak} command is simply:
+
+@example
+\tweak #'@emph{layout_property} = #@emph{value}
+@end example
+
+A @code{\tweak} command can also be used to modify just one in
+a series of articulations, as shown here:
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
a ^Black
You can find more details of the @code{\tweak} command in
@ruser{Objects connected to the input}.
-@end itemize
-
@node The Internals Reference manual
@section The Internals Reference manual
<b? bes>
@end lilypond
-None work, with the second two showing a bad collision between
+None work, with the second two showing bad collisions between
the two signs.
One way of achieving this is to override the accidental stencil
looking at the internal LilyPond files. To explore these, first
find the directory appropriate to your system, as follows:
-@itemize
-
-@item
-@subheading Linux
+@strong{Linux}
Navigate to
@file{@var{installdir}/lilypond/usr/share/lilypond/current/}
-@item
-@subheading OSX
+@strong{OSX}
Navigate to
@file{@var{installdir}/LilyPond.app/Contents/Resources/share/lilypond/current/}
Terminal, or control-clicking on the LilyPond application and
selecting @q{Show Package Contents}.
-@item
-@subheading Windows
+@strong{Windows}
Using Windows Explorer, navigate to
@file{@var{installdir}/LilyPond/usr/share/lilypond/current/}
-@end itemize
-
Within this directory the two interesting subdirectories are
@itemize
-
@item @file{../ly/ } - contains files in LilyPond format
-
@item @file{../scm/} - contains files in Scheme format
-
@end itemize
Let's begin by looking at some files in @file{../ly/}.
be redefined easily, just like any other variable, at the
head of your input file.
-The following are the most useful files to be found in
+The following are the most useful files to be found in
@file{../ly/}:
@multitable @columnfractions .4 .6
margins.
To be effective under all circumstances these checks must be enabled
-by placing the overrides in a Score @code{\with} block, rather than
+by placing the overrides in a Score @code{\with} block, rather than
in-line in music, as follows:
@verbatim
@node Advanced tweaks with Scheme
@subsection Advanced tweaks with Scheme
-Although many things are possible with the @code{\override} and
-@code{\tweak} commands, an even more powerful way of modifying
-the action of LilyPond is available through a programmable
-interface to the LilyPond internal operation. Functions are
-provided which enable the user to incorporate Scheme code directly
-in the internal operation of LilyPond. For example, it is
-possible to parametrize an override command which is used often
-but with different values.
-
-As the use of these functions require code to be written in the
-Scheme programming language, at least a basic knowledge of
-programming in Scheme is required. An introduction to this is
-provided in the @ref{Scheme tutorial}, and examples showing the
-use of these programmable interfaces can be found in
-@ref{Tweaking with Scheme}.
+Although many things are possible with the @code{\override} and
+@code{\tweak} commands, an even more powerful way of modifying
+the action of LilyPond is available through a programmable
+interface to the LilyPond internal operation. Code written in
+the Scheme programming language can be incorporated directly in
+the internal operation of LilyPond. Of course, at least a basic
+knowledge of programming in Scheme is required to do this, and an
+introduction is provided in the @ref{Scheme tutorial}.
+
+As an illustration of one of the many possibilities, instead of
+setting a property to a constant it can be set to a Scheme
+procedure which is then called whenever that property is accessed
+by LilyPond. The property can then be set dynamically to a value
+determined by the procedure at the time it is called. In this
+example we color the note head in accordance with its position on
+the staff.
+
+@lilypond[quote,verbatim,ragged-right]
+#(define (color-notehead grob)
+ "Color the notehead according to its position on the staff."
+ (let ((mod-position (modulo (ly:grob-property grob 'staff-position) 7)))
+ (case mod-position ; Set rainbow colors
+ ((1) (ly:grob-set-property! grob 'color (x11-color 'red)))
+ ((2) (ly:grob-set-property! grob 'color (x11-color 'orange)))
+ ((3) (ly:grob-set-property! grob 'color (x11-color 'yellow)))
+ ((4) (ly:grob-set-property! grob 'color (x11-color 'green)))
+ ((5) (ly:grob-set-property! grob 'color (x11-color 'blue)))
+ ((6) (ly:grob-set-property! grob 'color (x11-color 'purple)))
+ ((0) (ly:grob-set-property! grob 'color (x11-color 'violet)))
+ )
+ )
+)
+
+rainbow = {
+ % Override color so it is obtained from color-notehead Scheme function
+ \override NoteHead #'color = #color-notehead
+}
+
+\relative c' {
+ \rainbow {
+ c2 c' |
+ b4 g8 a b4 c |
+ c,2 a' |
+ g1 |
+ }
+}
+\addlyrics {
+ Some -- where o -- ver the Rain -- bow, way up high,
+}
+@end lilypond
+
+Further examples showing the use of these programmable interfaces
+can be found in @ref{Tweaking with Scheme}.
+
highly recommend that you always include the @code{\version}, no matter
how small your file is. Speaking from personal experience, it's
quite frustrating to try to remember which version of LilyPond you were
-using a few years ago. @command{convert-ly} requires you to declare
+using a few years ago. @code{convert-ly} requires you to declare
which version of LilyPond you used.
@item @strong{Include checks}: @ruser{Bar and barnumber checks},
@example
%%% global.ly
-\version @w{"@version{}"}
+\version "2.11.38"
#(ly:set-option 'point-and-click #f)
\include "../init/init-defs.ly"
\include "../init/init-layout.ly"
Do not use @itemize @bullet.
-* To get LilyPond version, use @version{} (this does not work inside
- LilyPond snippets). If you write "@version{}" (enclosed with
- quotes), or generally if @version{} is not followed by a space,
- enclose it with
-
- @w{ ... }
-
- e.g.
-
- @w{"@version{}"}
-
- to prevent an ugly line break in PDF output.
-
%%%%% SYNTAX SURVEY
$(MAKE) -C input/regression/musicxml out=test local-test
test-baseline:
- @if test -d .git ; then \
+ @if test -d .git ; then \
$(if $(shell git diff), echo "commit before base lining" && false,true) ; \
fi
$(MAKE)
else:
raise Exception ('unknown option: ' + o)
-def shorten_file_name (n):
- # ugh, regtests file names appear as full paths in GUB builds
- # we try to do something here
- b = os.path.basename (n)
- if os path.exists (b):
- return b
- return n
-
def name2line (n):
# UGR
s = r"""
name = os.path.basename (name)
template = template % vars ()
- files = map (shorten_file_name, files)
files.sort ()
s = "\n".join (map (name2line, files))
s = template.replace (include_snippets, s, 1)
import string
import os
import gettext
+import subprocess
def progress (str):
sys.stderr.write (str + '\n')
translation[l.code] = gettext.translation('lilypond-doc', localedir, [l.code]).gettext
def read_pipe (command):
- pipe = os.popen (command)
- output = pipe.read ()
- if pipe.close ():
+ child = subprocess.Popen (command,
+ stdout = subprocess.PIPE,
+ stderr = subprocess.PIPE,
+ shell = True)
+ (output, error) = child.communicate ()
+ code = str (child.wait ())
+ if not child.stdout or child.stdout.close ():
print "pipe failed: %(command)s" % locals ()
- return output
+ if code != '0':
+ error = code + ' ' + error
+ return (output, error)
comments_re = re.compile (r'^@ignore\n(.|\n)*?\n@end ignore$|@c .*?$', re.M)
space_re = re.compile (r'\s+', re.M)
'fully translated': {'color':'1fff1f', 'short':_doc ('yes'), 'long': _doc ('translated')},
'up to date': {'short':_doc ('yes'), 'long':_doc ('up to date')},
'outdated': {'short':_doc ('partially (%(p)d %%)'), 'long':_doc ('partially up-to-date (%(p)d %%)')},
+ 'N/A': {'short':_doc ('N/A'), 'long':'', 'color':'d587ff' },
'pre-GDP':_doc ('pre-GDP'),
'post-GDP':_doc ('post-GDP')
}
class SectionNumber (object):
def __init__ (self):
- self.__current_number = [0]
- self.__type = 'n'
+ self.__data = [[0,'u']]
def __increase_last_index (self):
- if isinstance (self.__current_number[-1], str):
- self.__current_number[-1] = self.__current_number[-1].translate (appendix_number_trans)
- else:
- self.__current_number[-1] += 1
+ type = self.__data[-1][1]
+ if type == 'l':
+ self.__data[-1][0] = self.__data[-1][0].translate (appendix_number_trans)
+ elif type == 'n':
+ self.__data[-1][0] += 1
- # ugh, current implementation is too naive:
- # unnumbered stuff is really printed without number for @top only
def format (self):
- if self.__current_number == [0] or self.__type == 'u':
+ if self.__data[-1][1] == 'u':
return ''
- return '.'.join ([str (i) for i in self.__current_number[1:]]) + ' '
+ return '.'.join ([str (i[0]) for i in self.__data if i[1] != 'u']) + ' '
def increase (self, (type, level)):
if level == 0:
- self.__current_number = [0]
- while level + 1 < len (self.__current_number):
- del self.__current_number[-1]
- if level + 1 > len (self.__current_number):
- self.__type = type
+ self.__data = [[0,'u']]
+ while level + 1 < len (self.__data):
+ del self.__data[-1]
+ if level + 1 > len (self.__data):
+ self.__data.append ([0, type])
if type == 'l':
- self.__current_number.append ('@')
- else:
- self.__current_number.append (0)
-
- if type == self.__type:
+ self.__data[-1][0] = '@'
+ if type == self.__data[-1][1]:
self.__increase_last_index ()
- elif type == 'l' and level == 1:
- self.__current_number[-1] = 'A'
else:
- self.__current_number[-1] = 1
+ self.__data[-1] = ([0, type])
+ if type == 'l':
+ self.__data[-1][0] = 'A'
+ elif type == 'n':
+ self.__data[-1][0] = 1
return self.format ()
c = [hex (int ((3 * p - 2) * b + 3 * (1 - p) * a))[2:] for (a, b) in [(0xff, 0x1f), (0xff, 0xff), (0x3d, 0x1f)]]
return ''.join (c)
-def line_word_count (tely_line):
- if tely_line.startswith ('@'):
- return 0
- tely_line = comments_re.sub ('', tely_line)
- return len (space_re.split (tely_line))
-
def tely_word_count (tely_doc):
'''
Calculate word count of a Texinfo document node by node.
'the whole file against the original in English, then ' + \
'fill in HEAD committish in the header.\n')
sys.exit (1)
- diff = read_pipe (diff_cmd % {'committish':m.group (1), 'original':masterdocument.filename}).splitlines ()
- insertions = sum ([line_word_count (l[1:]) for l in diff if l.startswith ('+') and not l.startswith ('+++')])
- deletions = sum ([line_word_count (l[1:]) for l in diff if l.startswith ('-') and not l.startswith ('---')])
- outdateness_percentage = 50.0 * (deletions + insertions) / (master_total_word_count + 0.5 * (deletions - insertions))
- self.uptodate_percentage = 100 - int (outdateness_percentage)
- if self.uptodate_percentage > 100:
- alternative = 50
- progress ("%s: strange uptodateness percentage %d %%, setting to %d %%" \
- % (self.filename, self.uptodate_percentage, alternative))
- self.uptodate_percentage = alternative
- elif self.uptodate_percentage < 1:
- alternative = 1
- progress ("%s: strange uptodateness percentage %d %%, setting to %d %%" \
- % (self.filename, self.uptodate_percentage, alternative))
- self.uptodate_percentage = alternative
+ (diff_string, error) = read_pipe (diff_cmd % {'committish':m.group (1), 'original':masterdocument.filename})
+ if error:
+ sys.stderr.write ('warning: %s: %s' % (self.filename, error))
+ self.uptodate_percentage = None
+ else:
+ diff = diff_string.splitlines ()
+ insertions = sum ([len (l) - 1 for l in diff if l.startswith ('+') and not l.startswith ('+++')])
+ deletions = sum ([len (l) - 1 for l in diff if l.startswith ('-') and not l.startswith ('---')])
+ outdateness_percentage = 50.0 * (deletions + insertions) / (masterdocument.size + 0.5 * (deletions - insertions))
+ self.uptodate_percentage = 100 - int (outdateness_percentage)
+ if self.uptodate_percentage > 100:
+ alternative = 50
+ progress ("%s: strange uptodateness percentage %d %%, setting to %d %%" \
+ % (self.filename, self.uptodate_percentage, alternative))
+ self.uptodate_percentage = alternative
+ elif self.uptodate_percentage < 1:
+ alternative = 1
+ progress ("%s: strange uptodateness percentage %d %%, setting to %d %%" \
+ % (self.filename, self.uptodate_percentage, alternative))
+ self.uptodate_percentage = alternative
def completeness (self, formats=['long']):
if isinstance (formats, str):
if isinstance (formats, str):
formats = [formats]
p = self.uptodate_percentage
- if p == 100:
+ if p == None:
+ status = 'N/A'
+ elif p == 100:
status = 'up to date'
else:
status = 'outdated'
l = {}
for f in formats:
- if f == 'color':
+ if f == 'color' and p != None:
l['color'] = percentage_color (p)
else:
l[f] = format_table[status][f] % locals ()
def __init__ (self, filename, parent_translations=dict ([(lang, None) for lang in langdefs.LANGDICT.keys()])):
#print "init MasterTelyDocument %s" % filename
TelyDocument.__init__ (self, filename)
+ self.size = len (self.contents)
self.word_count = tely_word_count (self.contents)
translations = dict ([(lang, os.path.join (lang, filename)) for lang in langdefs.LANGDICT.keys()])
#print translations
progress ("Reading documents...")
-tely_files = read_pipe ("find -maxdepth 2 -name '*.tely'").splitlines ()
-master_docs = [MasterTelyDocument (filename) for filename in tely_files]
+tely_files = read_pipe ("find -maxdepth 2 -name '*.tely'")[0].splitlines ()
+master_docs = [MasterTelyDocument (os.path.normpath (filename)) for filename in tely_files]
master_docs = [doc for doc in master_docs if doc.translations]
main_status_page = open ('translations.template.html').read ()
progress ("Generating status pages...")
-main_status_html = ' <p><i>Last updated %s</i></p>\n' % read_pipe ('LANG= date -u')
+main_status_html = ' <p><i>Last updated %s</i></p>\n' % read_pipe ('LANG= date -u')[0]
main_status_html += '\n'.join ([doc.html_status () for doc in master_docs])
html_re = re.compile ('<html>', re.I)
<<
- \new Staff \relative c'' {
+ \new Voice \relative c'' {
\time 1/4 c16[ c c c]
\time 1/4
c16[ c c c]
\time 1/4
r c16[ c c]
-
- }
- \new Lyrics \lyricmode {
+ } \addlyrics {
bla16 -- bla -- bla -- bla --
bla -- bla -- bla -- bla8 --
bla16 -- bla -- bla
ragged-right= ##t
}
-<<
- \context Staff { c' (c') c'( c') }
- \context Lyrics \lyricmode {
- \override Lyrics . LyricSpace #'minimum-distance = #5.0
- a -- b x -- y
- }
->>
+\new Voice { c' (c') c'( c') }
+\addlyrics {
+ \override Lyrics . LyricSpace #'minimum-distance = #5.0
+ a -- b x -- y
+}
\book {
\score {
- {\repeat unfold 30 {a b c d}}
+ {\repeat unfold 40 {a b c d}}
}
}
\ No newline at end of file
\version "2.10.0"
-\paper {
- ragged-right = ##t
- indent = 0
-}
-
-\relative c''
-{
- \override Score.SpacingSpanner #'strict-note-spacing = ##t
- \set Score.proportionalNotationDuration = #(ly:make-moment 1 12)
- c8[ \grace { c16[ c] } c8 c8 c8]
- c2
-}
+<<
+ \override Score.SpacingSpanner #'strict-grace-spacing = ##t
+ \new Staff {
+ c'4
+ \afterGrace
+ c'4
+ { c'16[ c' c' c'] c'[ c' c' c'] }
+ c'4
+ }
+ \new Staff {
+ c'16[ c'16 c'16 c'16]
+ c'16[ c'16 c'16 c'16]
+ c'4
+ }
+>>
vector<Break_node> state_;
- vsize final_page_num (Break_node const &b);
+ vsize total_page_count (Break_node const &b);
Break_node put_systems_on_pages (vsize start,
vsize end,
vsize configuration,
return ret;
}
-/* "final page" meaning the number of the final right-hand page,
- which always has an odd page number */
+/* The number of pages taken up by a Break_node, including
+ the blank page if there is one */
vsize
-Page_turn_page_breaking::final_page_num (Break_node const &b)
+Page_turn_page_breaking::total_page_count (Break_node const &b)
{
vsize end = b.first_page_number_ + b.page_count_;
- return end - 1 + (end % 2);
+ return end - 1 + (end % 2) - b.first_page_number_;
}
extern bool debug_page_breaking_scoring;
if (isinf (cur.demerits_)
|| (cur.page_count_ + (p_num % 2) > 2
&& (!isinf (this_start_best.demerits_))
- && final_page_num (cur) > final_page_num (this_start_best)))
+ && total_page_count (cur) > total_page_count (this_start_best)))
{
ok_page = false;
break;
#include <cmath> // ceil.
#include <algorithm>
+
using namespace std;
#include "directional-element-interface.hh"
/* In case of a ledger lines, quantize even if we're outside the staff. */
|| (Note_head::has_interface (head)
- && abs (Staff_symbol_referencer::get_position (head)) > position))
+ && abs (Staff_symbol_referencer::get_position (head)) > abs (position)))
{
o += (rounded - position) * 0.5 * ss;
if (Staff_symbol_referencer::on_line (me, int (rounded)))
if (Note_spacing::has_interface (wish))
{
Real inc = options->increment_;
- if (Grob *gsp = unsmob_grob (left_col->get_object ("grace-spacing")))
+ Grob *gsp = unsmob_grob (left_col->get_object ("grace-spacing"));
+ if (gsp && Paper_column::when_mom (left_col).grace_part_)
{
Spacing_options grace_opts;
grace_opts.init_from_grob (gsp);
rm -f $(outdir)/collated-files.html
if test -d $(top-src-dir)/.git ; then \
echo -e 'HEAD is:\n\n\t' ; \
- git log --max-count=1 --pretty=oneline ;\
+ (cd $(top-src-dir) && git log --max-count=1 --pretty=oneline ) ;\
echo -e '\n\n\n' ; \
- git diff ; \
+ (cd $(top-src-dir) && git diff ) ; \
fi > $(outdir)/tree.gittxt
$(MAKE) LILYPOND_BOOK_LILYPOND_FLAGS="-dbackend=eps --formats=ps $(LILYPOND_JOBS) -dseparate-log-files -dinclude-eps-fonts -dgs-load-lily-fonts --header=texidoc -I $(top-src-dir)/input/manual -ddump-profile -dcheck-internal-types -ddump-signatures -danti-alias-factor=1" LILYPOND_BOOK_VERBOSE= $(outdir)/collated-files.html
rsync -L -a --exclude 'out-*' --exclude 'out' --exclude mf --exclude source --exclude mf $(top-build-dir)/out/share $(outdir)
(define pure-functions
(list
parenthesize-elements
+ ly:rest::y-offset-callback
ly:staff-symbol-referencer::callback
ly:staff-symbol::height))
GENERATE_OMF = $(PYTHON) $(buildscript-dir)/texi2omf.py --format $(1) --location $(webdir)/$(tree-dir)/out-www/$(notdir $(basename $@)) --version $(TOPLEVEL_VERSION) $< > $@
-TEXI2PDF_FLAGS += --command '@set version $(TOPLEVEL_VERSION)'
TEXINFO_PAPERSIZE_OPTION= $(if $(findstring $(PAPERSIZE),a4),,-t @afourpaper)
-MAKEINFO_FLAGS = --enable-encoding -D 'version $(TOPLEVEL_VERSION)'
+MAKEINFO_FLAGS = --enable-encoding
MAKEINFO = LANG= $(MAKEINFO_PROGRAM) $(MAKEINFO_FLAGS)