From: Reinhold Kainhofer Date: Sat, 8 Mar 2008 23:33:34 +0000 (+0100) Subject: Merge branch 'master' of ssh://kainhofer@git.sv.gnu.org/srv/git/lilypond into kainhofer X-Git-Tag: release/2.11.43-1~54^2~2 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=2a07e2ea1924abec1b70e2150e698e5792ae1687;hp=d92c587f7cd80c13819faf69da9d0587c4cd8b9f;p=lilypond.git Merge branch 'master' of ssh://kainhofer@git.sv.gnu.org/srv/git/lilypond into kainhofer --- diff --git a/.gitignore b/.gitignore index 78ddd2aade..014cbcf08c 100644 --- a/.gitignore +++ b/.gitignore @@ -71,3 +71,4 @@ pats tags test-output-distance Documentation/user/lilypond +input/lsr/lilypond-snippets diff --git a/Documentation/GNUmakefile b/Documentation/GNUmakefile index cde95c500c..8f7228053e 100644 --- a/Documentation/GNUmakefile +++ b/Documentation/GNUmakefile @@ -7,7 +7,7 @@ STEPMAKE_TEMPLATES=documentation texinfo tex LOCALSTEPMAKE_TEMPLATES=lilypond ly LILYPOND_BOOK_FLAGS=--extra-options '-e "(ly:set-option (quote internal-type-checking) \#t)"' README_TOP_FILES= DEDICATION THANKS -EXTRA_DIST_FILES= texinfo.css TRANSLATION translations.template.html +EXTRA_DIST_FILES= texinfo.css TRANSLATION include $(depth)/make/stepmake.make diff --git a/Documentation/de/user/ancient.itely b/Documentation/de/user/ancient.itely index 485440b494..734aecccc4 100644 --- a/Documentation/de/user/ancient.itely +++ b/Documentation/de/user/ancient.itely @@ -509,7 +509,7 @@ der Schlüssel gesetzt wird. In diesem Handbuch: siehe @ref{Clef}. -@refbugs +@knownissues Der mensurale G-Schlüssel ist als Petrucci-G-schlüssel deklariert. @@ -541,7 +541,7 @@ für das Incipit bei der Transkription mensuraler Musik der Standardstil benutzt werden. Für die Notation des Gregorianischen Chorals gibt es keine Fähnchen. -@refbugs +@knownissues Die Positionierung der Fähnchen an den Hälsen ist leicht verschoben seit einer Änderung in einer frühen 2.3.x-Version. @@ -648,7 +648,7 @@ Im folgenden Beispiel sind die unterschiedlichen Stile dargestellt. In diesem Handbuch: @ref{Time signature} bietet eine allgemeine Übersicht über den Einsatz von Taktangaben. -@refbugs +@knownissues Die Verhältnisse der Notenwerte ändern sich nicht, wenn die Taktart (Mensur) gewechselt wird. Zum Beispiel muss das Verhältnis 1 brevis = 3 semibrevis @@ -696,7 +696,7 @@ sie mit der Notation des Editio Vaticana-Stils verwendet werden können. } @end lilypond -@refbugs +@knownissues Einige Artikulationszeichen sind vertikal zu dich an den entsprechenden Notenköpfen gesetzt. @@ -810,7 +810,7 @@ sich in der Datei @file{gregorian@/-init@/.ly} auch eine Definition für @lilypondfile[quote,ragged-right]{divisiones.ly} -@refcommands +@predefined @funindex \virgula @code{\virgula}, @@ -866,7 +866,7 @@ Abschnitten erklärt wird. Nur weiße Mensuralligaturen sind unterstützt -- mit Einschränkungen. -@refbugs +@knownissues Ligaturen benötigen von klassischer Notation unterschiedliche Platzaufteilung, was sie aber noch nicht können. Darum ist fast immer zu viel Platz zwischen @@ -977,7 +977,7 @@ wie folgt ausgegeben: } @end lilypond -@refbugs +@knownissues Die horizontale Positionierung ist sehr schlecht. @@ -1884,7 +1884,7 @@ funktionieren beide Befehle. Es ist auch möglich, mit } @end lilypond -@refcommands +@predefined Folgende Notenpräfixe sind unterstützt: @@ -1926,7 +1926,7 @@ fallende Melodielinie zu notieren. Die musikalische Funktion @code{\augmentum} muss benutzt werden, um augmentum-Punkte hinzuzufügen. -@refbugs +@knownissues Wenn ein @code{\augmentum}-Punkt am Ende des letzten Systems innerhalb einer Ligatur gesetzt wird, ist er vertikal etwas falsch positioniert. Als @@ -2218,7 +2218,7 @@ Befehl benutzt werden. -@refbugs +@knownissues Wenn Bassziffern über dem Notensystem mit Ergänzungslinien und @code{implicitBassFigures} benutzt werden, kann es vorkommen, dass diff --git a/Documentation/de/user/chords.itely b/Documentation/de/user/chords.itely index d36ffe221d..1997cb79b5 100644 --- a/Documentation/de/user/chords.itely +++ b/Documentation/de/user/chords.itely @@ -210,7 +210,7 @@ um Pausen und Zwischenräume einzufügen. Mit Eigenschaftsbefehlen können verschiedene Einstellungen verändert werden. -@refbugs +@knownissues Jedes Intervall kann nur einmal in einem Akkord vorkommen. Im folgenden Beispiel wird nur der erweiterte Akkord erstellt, @@ -395,7 +395,7 @@ wird in der Datei @cindex Akkorde, Jazz -@refcommands +@predefined @funindex \germanChords @code{\germanChords}, @@ -414,7 +414,7 @@ Init-Dateien: @file{scm/@/chords@/-ignatzek@/.scm} und @file{scm/@/chord@/-entry@/.scm}. -@refbugs +@knownissues Akkordsymbole werden nur von den Tonhöhenbezeichnungen bestimmt. Akkordumkehrungen sind nicht definiert, noch werden Bassnoten diff --git a/Documentation/de/user/editorial.itely b/Documentation/de/user/editorial.itely index add8420e28..71155158e1 100644 --- a/Documentation/de/user/editorial.itely +++ b/Documentation/de/user/editorial.itely @@ -162,7 +162,7 @@ ein Notenhals (@internalsref{Stem}) -Objekt erzeugt. Auch für ganze Noten und Pausen werden sie erzeugt, aber unsichtbar gemacht. -@refcommands +@predefined @funindex \stemUp @code{\stemUp} (Hälse nach oben), diff --git a/Documentation/de/user/expressive.itely b/Documentation/de/user/expressive.itely index d9b1d13a5e..c6c7260801 100644 --- a/Documentation/de/user/expressive.itely +++ b/Documentation/de/user/expressive.itely @@ -117,7 +117,7 @@ a4^\prall^\markup { \sharp } Programmreferenz: @internalsref{Script}. -@refbugs +@knownissues Diese Zeichen erscheinen zwar im Druck, haben aber keine Auswirkung auf die produzierte MIDI-Datei. @@ -283,7 +283,7 @@ zu unterdrücken, kann der Befehl @noindent eingesetzt werden. -@refcommands +@predefined @funindex \dynamicUp @code{\dynamicUp}, @@ -408,7 +408,7 @@ die Richtung (1=nach oben, -1=nach unten). @end lilypond -@refcommands +@predefined @funindex \tieUp @@ -432,7 +432,7 @@ Im Handbuch: @ref{Automatic note splitting}. Programmreferenz: @internalsref{Tie}. -@refbugs +@knownissues Der Wechsel zwischen Systemen bei aktiver Überbindung produziert keinen gekrümmten Bogen. @@ -485,7 +485,7 @@ markieren. Das kann in LilyPond erreicht werden, indem die Eigenschaft @end lilypond -@refcommands +@predefined @funindex \slurUp @code{\slurUp}, @@ -528,7 +528,7 @@ anstelle dessen muss Es können keine simultanen Phrasierungsbögen gesetzt werden. -@refcommands +@predefined @funindex \phrasingSlurUp @code{\phrasingSlurUp}, @@ -659,7 +659,7 @@ Beispiele: -@refbugs +@knownissues Text über der Linie (wie etwa @emph{gliss.}) wird nicht unterstützt. @@ -717,7 +717,7 @@ Klaviersystem die Eigenschaft @c TODO: cross-voice arpeggio example? @c such an example is already in LSR -J.Mandereau -@refcommands +@predefined @code{\arpeggio}, @funindex \arpeggioUp @@ -737,7 +737,7 @@ Notationshandbuch: @ref{Ties}, um Arpeggios auszuschreiben. Programmreferenz: @internalsref{Arpeggio}. -@refbugs +@knownissues Es ist nicht möglich, Arpeggios zwischen Systemen und solche, die sich nur auf ein System erstrecken, zum gleichen Zeitpunkt in einem @@ -776,7 +776,7 @@ Dabei ist das erste Argument die Hauptnote. Die zweite Note wird ohne Hals in Klammern gesetzt. -@refcommands +@predefined @code{\startTrillSpan}, @funindex \startTrillSpan diff --git a/Documentation/de/user/guitar.itely b/Documentation/de/user/guitar.itely index 550570883c..782dbb1563 100644 --- a/Documentation/de/user/guitar.itely +++ b/Documentation/de/user/guitar.itely @@ -118,7 +118,7 @@ initialisiert werden: Programmreferenz: @internalsref{TabStaff}, @internalsref{TabVoice}. -@refbugs +@knownissues Akkorde werden nicht gesondert behandelt, sodass die Saitenauswahlfunktion eventuell die selbe Saite für zwei Töne eines Akkordes auswählen kann. @@ -185,7 +185,7 @@ In der Datei @file{scm/@/output@/-lib@/.scm} sind die Stimmungen definiert. Programmreferenz: @internalsref{Tab_note_heads_engraver}. -@refbugs +@knownissues Spezialeffekte für Gitarren sind noch nicht implementiert. diff --git a/Documentation/de/user/macros.itexi b/Documentation/de/user/macros.itexi index 111f35f97d..fb3329078a 100644 --- a/Documentation/de/user/macros.itexi +++ b/Documentation/de/user/macros.itexi @@ -7,6 +7,11 @@ @end ignore +@macro version +@value{version} +@end macro + + @c ***** Displaying text ***** @c we need this since @q{\} doesn't work with makeinfo 4.8 -- @@ -15,87 +20,77 @@ @c to get decent quotes in `foo' and ``foo'' @c these need to be split up so that "@qq{foo}." looks nice. :( -@iftex @macro q{TEXT} -@quotesinglbase{}\TEXT\` +@quotesinglbase{}\TEXT\@quoteleft{} @end macro @macro qq{TEXT} -@quotedblbase{}\TEXT\`` +@quotedblbase{}\TEXT\@quotedblleft{} @end macro -@end iftex +@macro warning{TEXT} +@quotation +@quotation +@cartouche +@b{Achtung:} \TEXT\ +@end cartouche +@end quotation +@end quotation +@end macro -@ifinfo -@macro q{TEXT} -‚\TEXT\‘ +@ifnotinfo +@macro notation{TEXT} +@var{\TEXT\} @end macro +@end ifnotinfo -@macro qq{TEXT} -„\TEXT\“ +@ifinfo +@macro notation{TEXT} +\TEXT\ @end macro @end ifinfo - -@ifhtml -@macro q{TEXT} -@html -‚\TEXT\‘ -@end html +@macro smallspace +@sp 1 @end macro -@macro qq{TEXT} -@html -„\TEXT\“ -@end html -@end macro -@end ifhtml +@c **** Displaying images not generated by lilypond-book -@ifdocbook -@macro q{TEXT} -@html -‚\TEXT\‘ -@end html -@end macro +@c current installation setup of Info docs requires that all images are +@c expected to be found in lilypond/ subdirectory. lilypond-book already +@c generates proper @image commands for images of music; these macros +@c definitions do the same for other images. -@macro qq{TEXT} -@html -„\TEXT\“ -@end html +@ifnotinfo +@macro sourceimage{FILENAME,WIDTH,HEIGHT,ALTTEXT} +@image{\FILENAME\,\WIDTH\,\HEIGHT\,\ALTTEXT\} @end macro -@end ifdocbook +@end ifnotinfo -@macro warning{TEXT} -@quotation -@quotation -@cartouche -@b{Achtung:} \TEXT\ -@end cartouche -@end quotation -@end quotation +@ifinfo +@macro sourceimage{FILENAME,WIDTH,HEIGHT,ALTTEXT} +@image{lilypond/\FILENAME\,\WIDTH\,\HEIGHT\,\ALTTEXT\} @end macro +@end ifinfo -@c TODO: define different output for info -@macro notation{TEXT} -@var{\TEXT\} -@end macro @c **** Headings in a doc subsection **** -@c not really a heading, but... -@macro smallspace -@sp 1 +@macro predefined +@noindent +@subsubheading Predefined commands + @end macro -@c obsolete; being removed. -@macro refcommands +@macro snippets @noindent -@subsubheading Predefined commands +@subsubheading Selected Snippets @end macro +@c obsolete, remove when translation is fully updated @macro commonprop @noindent @subsubheading Commonly tweaked properties @@ -108,13 +103,13 @@ @end macro -@macro refbugs +@macro knownissues @noindent -@subsubheading Bugs +@subsubheading Known issues and warnings @end macro - +@c obsolete, remove when translation is fully updated @macro context{TEXT} @vindex \TEXT\ @code{\TEXT\}@c should use internalsref @@ -130,6 +125,7 @@ @c **** Links and references **** +@c obsolete @c usage: @lsr{ancient,custodes.ly} @macro lsr{DIR,TEXT} @ifhtml @@ -140,6 +136,7 @@ @end ifnothtml @end macro +@c don't update until this macro is correctly set up in English docs @macro lsrdir{DIR} @ifhtml @uref{source/input/lsr/\DIR\/collated-files.html,@file{\DIR\}/} @@ -162,14 +159,6 @@ @ifhtml @c ***** HTML ***** -@c makeinfo-4.7 encodes html names, which means that nodes that -@c contain nonalphanum characters will be broken links on the website. -@c @uref{../lilypond-internals/\TEXT\.html,\TEXT\}@c -@c @inforef{} adds ``See'' to the sentence, which is annoying, but -@c better than a broken link. -@c @inforef{\TEXT\,,lilypond-internals}@c -@c using @ref without punctuation is OK without for formats other than info - @ifset bigpage @macro internalsref{TEXT} @@ -308,18 +297,15 @@ @end macro @macro rprogram{TEXT} -Programmbenutzung, @ref{\TEXT\,,,lilypond-program} -@c @internalsref{\TEXT\} +Programmbenutzung, @ref{\TEXT\,,,lilypond-program.de} @end macro @macro ruser{TEXT} -Benutzerhandbuch, @ref{\TEXT\,,,lilypond} -@c @internalsref{\TEXT\} +Benutzerhandbuch, @ref{\TEXT\,,,lilypond.de} @end macro @macro rlearning{TEXT} -Handbuch zum Lernen, @ref{\TEXT\,,,lilypond-learning} -@c @internalsref{\TEXT\} +Handbuch zum Lernen, @ref{\TEXT\,,,lilypond-learning.de} @end macro @end iftex diff --git a/Documentation/de/user/percussion.itely b/Documentation/de/user/percussion.itely index 4dbdeb598b..feabfc95a3 100644 --- a/Documentation/de/user/percussion.itely +++ b/Documentation/de/user/percussion.itely @@ -288,7 +288,7 @@ Init-Dateien: @file{ly/@/drumpitch@/-init@/.ly}. Programmreferenz: @internalsref{DrumStaff}, @internalsref{DrumVoice}. -@refbugs +@knownissues Weil in den allgemeinen MIDI-Definitionen kein Rimshot enthalten ist, wird sidestick für diesen Zweck benutzt. diff --git a/Documentation/de/user/piano.itely b/Documentation/de/user/piano.itely index f2bc655a4d..d9730d14d3 100644 --- a/Documentation/de/user/piano.itely +++ b/Documentation/de/user/piano.itely @@ -35,7 +35,7 @@ das Klaviersystem und andere Eigenheiten der Pianonotation besprochen. * Cross staff stems:: @end menu -@refbugs +@knownissues Dynamische Zeichen werden nicht automatisch mittig notiert, aber dafür gibt es Lösungen, vgl. die @@ -96,7 +96,7 @@ Im Handbuch: @ref{Manual staff switches}. Programmreferenz: @internalsref{AutoChangeMusic}. -@refbugs +@knownissues Der Systemwechsel wird nicht immer an der optimalen Stelle vorgenommen. Für hohe Qualität muss der Wechsel mit der Hand eingegeben werden. @@ -250,7 +250,7 @@ Stimmenverlaufs ausgegeben werden. Das wird erreicht, indem Programmreferenz: @internalsref{VoiceFollower}. -@refcommands +@predefined @funindex \showStaffSwitch @code{\showStaffSwitch}, diff --git a/Documentation/de/user/pitches.itely b/Documentation/de/user/pitches.itely index 0eef30ac6b..893603b32e 100644 --- a/Documentation/de/user/pitches.itely +++ b/Documentation/de/user/pitches.itely @@ -207,7 +207,7 @@ Mikrotöne werden auch in die MIDI-Dateien geschrieben. -@refbugs +@knownissues Es gibt keine allgemein anerkannten Standards für die Notation von Dreiviertelton-Erniedrigungszeichen. LilyPonds @@ -521,7 +521,7 @@ Programmreferenz: @internalsref{TransposedMusic}. Beispiel: @lsr{scheme,transpose-pitches-with-minimum-accidentals.ly}. -@refbugs +@knownissues Wenn Sie sowohl @code{\transpose} als auch @code{\relative} benutzen wollen, muss die @code{\transpose}-Umgebung sich diff --git a/Documentation/de/user/repeats.itely b/Documentation/de/user/repeats.itely index 7a7e1e3d2a..fef54d5b1c 100644 --- a/Documentation/de/user/repeats.itely +++ b/Documentation/de/user/repeats.itely @@ -189,7 +189,7 @@ System ausgegeben. Das kann verändert werden, indem @lsr{repeats,volta@/-multi@/-staff@/.ly}. -@refbugs +@knownissues @cindex Wiederholung, mehrdeutig @@ -364,7 +364,7 @@ c'2:8 c':32 | c': c': | @end lilypond -@refbugs +@knownissues Tremolos, die auf diese Weise notiert werden, werden nicht in die MIDI-Datei aufgenommen. diff --git a/Documentation/de/user/rhythms.itely b/Documentation/de/user/rhythms.itely index 969f84eb05..eb109d8cff 100644 --- a/Documentation/de/user/rhythms.itely +++ b/Documentation/de/user/rhythms.itely @@ -107,7 +107,7 @@ ergeben eine doppelte Punktierung. a'4 b' c''4. b'8 a'4. b'4.. c''8. @end lilypond -@refcommands +@predefined Punkte werden normalerweise nach oben verschoben, damit sie die Notenlinien nicht berühren. Das gilt aber nicht für mehrstimmige Passagen. Mit den @@ -161,7 +161,7 @@ Diese Brüche können auch ineinander geschachtelt werden, etwa so: } @end lilypond -@refcommands +@predefined @funindex \tupletUp @code{\tupletUp}, @@ -500,7 +500,7 @@ Programmreferenz: @internalsref{TimeSignature} und Beispiele: @lsr{contemporary,compound-time-signature.ly}. -@refbugs +@knownissues Automatische Balken richten sich nicht nach den Taktunterteilungen, die mit @code{set-time-signature} erzeugt werden. @@ -539,7 +539,7 @@ die darstellt, wie groß der Abstand zum Taktanfang ist. Deshalb ist sie eine negative Zahl; @code{\partial 4} wird also intern übersetzt zu: @qq{Eine Viertel bleibt übrig vom ganzen Takt.} -@refbugs +@knownissues Dieser Befehl berücksichtigt keine Verzierungen/Vorschläge am Anfang der Noten. Wenn ein Stück mit einem Vorschlag anfängt, muss der Befehl @@ -580,7 +580,7 @@ d4 e d c @end lilypond -@refbugs +@knownissues LilyPond fügt Zeilen- und Seitenumbrüche nur an einer Taktlinie ein. Wenn die Kadenz nicht vor einem Umbruch endet, müssen Sie @@ -631,7 +631,7 @@ den Formatierer @internalsref{Forbid_line_break_engraver} mit dem @code{\remove}-Befehl entfernen. -@refbugs +@knownissues Nicht alle Notenwerte (besonders wenn sie andere rhythmische Aufteilungen beinhalten) können exakt durch normale Noten und @@ -761,7 +761,7 @@ wenn ein großer Abstand zwischen Notenköpfen gefunden wird. Die Größe des Wertes kann mit dem @code{auto-knee-gap}-Objekt eingestellt werden. -@refbugs +@knownissues Automatisch erstellte Balken zwischen Systemen können nicht zusammen mit automatisch versteckten Systemen verwendet werden. Siehe auch @@ -1154,7 +1154,7 @@ zu werden. Programmreferenz: @internalsref{GraceMusic}. -@refbugs +@knownissues Eine Partitur, die mit einem @code{\grace}-Ausdruck beginnt, benötigt eine explizit gesetzte neue Stimme (@code{\new Voice}), sonst werden diff --git a/Documentation/de/user/simultaneous.itely b/Documentation/de/user/simultaneous.itely index f5c19c8dab..067d58534d 100644 --- a/Documentation/de/user/simultaneous.itely +++ b/Documentation/de/user/simultaneous.itely @@ -340,7 +340,7 @@ Spalte zu rücken, und das Vereinigen funktioniert wie gewünscht. @end lilypond -@refcommands +@predefined @funindex \oneVoice @code{\oneVoice}, @@ -393,7 +393,7 @@ zuständig sind, sind @internalsref{NoteCollision} und @internalsref{RestCollision}. -@refbugs +@knownissues Wenn @code{merge-differently-headed} mit einer nach oben gerichteten Achtel oder kleineren Note verwendet wird, und die nach unten gerichtete diff --git a/Documentation/es/user/editorial.itely b/Documentation/es/user/editorial.itely index cc62b270ce..6d167e4111 100644 --- a/Documentation/es/user/editorial.itely +++ b/Documentation/es/user/editorial.itely @@ -1,6 +1,6 @@ @c -*- coding: utf-8; mode: texinfo; -*- @ignore - Translation of GIT committish: e5ddf62fed87ae3b1a0b28fa6842e10f39734fb7 + Translation of GIT committish: 98ae4afd530d6a059a81356119d8138ed25b2650 When revising a translation, copy the HEAD committish of the version that you are working on. See TRANSLATION for details. @@ -18,7 +18,6 @@ @end menu - @node Inside the staff @subsection Inside the staff @@ -33,13 +32,13 @@ @end menu @node Selecting notation font size -@unnumberedsubsubsec Selecting notation font size +@subsubsection Selecting notation font size UNTRANSLATED NODE: IGNORE ME @node Fingering instructions -@unnumberedsubsubsec Fingering instructions +@subsubsection Fingering instructions @cindex digitación @cindex cambio de dedo @@ -132,6 +131,13 @@ Fragmentos de código: @lsrdir{Editorial,Editorial-annotations}. @node Coloring objects @subsubsection Coloring objects +@cindex coloreados, objetos +@cindex colores +@cindex colorear objects +@cindex coloreadas, notas +@cindex colorear notas +@cindex notas, coloreadas + Se pueden asignar colores a los objetos individuales. Podemos usar los nombres de color que se relacionan en la @ref{List of colors}. @@ -210,7 +216,7 @@ para ver más detalles. @node Parentheses -@unnumberedsubsubsec Parentheses +@subsubsection Parentheses @cindex fantasma, notas @cindex notas fantasma @@ -234,100 +240,8 @@ Esto sólo funciona dentro de los acordes, incluso para notas sueltas @end example -@node Ambitus -@unnumberedsubsubsec Ambitus -@cindex ambitus - -El término @emph{ambitus} o ámbito, denota el rango de notas que abarca una voz dada -en una parte musical. También puede denotar el margen de notas que es capaz de tocar -un determinado instrumento musical. Los ámbitos se imprimen en las partes vocales de tal manera que -los intérpretes puedan determinar con facilidad si cumplen con sus propias posibilidades. - -Los ámbitos se presentan al comienzo de la pieza junto a la clave inicial. -El rango se especifica gráficamente mediante dos cabezas de nota que representan a las -notas inferior y superior. Para imprimir el ámbito, añada el grabador -@internalsref{Ambitus_engraver} al contexto @internalsref{Voice}, -por ejemplo - -@example -\layout @{ - \context @{ - \Voice - \consists Ambitus_engraver - @} -@} -@end example - -Lo que da como resultado la siguiente salida: - -@lilypond[quote,ragged-right] -\layout { - \context { - \Staff - \consists Ambitus_engraver - } -} - -\relative \new Staff { - as'' c e2 cis,2 -} -@end lilypond - -Si tiene varias voces en un pentagrama único y quiere tener una sola indicación de ámbito -por pentagrama en lugar de una por cada voz, añada el grabador -@internalsref{Ambitus_engraver} al contexto @internalsref{Staff} -y no al contexto @internalsref{Voice}. He aquí un ejemplo: - -@lilypond[verbatim,ragged-right,quote] -\new Staff \with { - \consists "Ambitus_engraver" -} -<< - \new Voice \with { - \remove "Ambitus_engraver" - } \relative c'' { - \override Ambitus #'X-offset = #-1.0 - \voiceOne - c4 a d e f2 - } - \new Voice \with { - \remove "Ambitus_engraver" - } \relative c' { - \voiceTwo - es4 f g as b2 - } ->> -@end lilypond - -@noindent -Este ejemplo utiliza una capacidad avanzada, - -@example -\override Ambitus #'X-offset = #-1.0 -@end example - -@noindent -Este código mueve el ámbito a la izquierda. Se podría haber conseguido el mismo -efecto con @code{extra-offset}, pero en tal caso el sistema de formateo no -reservaría espacio para el objeto que se ha movido. - -@seealso - -Referencia del programa: @internalsref{Ambitus}, -@internalsref{AmbitusLine}, @internalsref{AmbitusNoteHead}, -@internalsref{AmbitusAccidental}. - -Ejemplos: -@lsr{vocal,ambitus@/.ly}. - -@knownissues - -No se efectúa un tratamiento de las posibles colisiones en caso de varias indicaciones de ámbito -simultáneas en distintas voces. - - @node Stems -@unnumberedsubsubsec Stems +@subsubsection Stems Cuando se encuentra con una nota, se crea un objeto @internalsref{Stem} (plica) automáticamente. Para las redondas y los @@ -367,7 +281,7 @@ a4 b c b @end menu @node Balloon help -@unnumberedsubsubsec Balloon help +@subsubsection Balloon help Los elementos de notación se pueden marcar y nombrar con la ayuda de un cartel o globo de ayuda rectangular. El propósito principal de esta funcionalidad es la explicación de la notación. @@ -397,7 +311,7 @@ Referencia del programa: @internalsref{text-balloon-interface}. @node Grid lines -@unnumberedsubsubsec Grid lines +@subsubsection Grid lines Se pueden dibujar líneas verticales, sincronizadas con las notas, entre pentagramas. @@ -439,35 +353,40 @@ pentagramas. Ejemplos: @lsrdir{education} -@node Blank music sheet -@unnumberedsubsubsec Blank music sheet - -@cindex papel de música vacío -@cindex Pentagramas, hoja en blanco +@node Analysis brackets +@subsubsection Analysis brackets -También se pueden producir hojas de papel de música en blanco utilizando notas invisibles y -suprimiendo el grabador @code{Bar_number_engraver}. +@cindex corchetes +@cindex fraseo, corchetes de +@cindex musicológico, análisis +@cindex notas, corchetes de agrupación de +Los corchetes se usan en análisis musical para indicar las estructuras presentes en las piezas +musicales. LilyPond contempla una forma básica de corchetes horizontales anidados. +Para usarlos, añada el grabador @internalsref{Horizontal_bracket_engraver} +al contexto @internalsref{Staff}. Un corchete se abre con +@code{\startGroup} y se cierra con @code{\stopGroup} -@lilypond[quote,verbatim] -\layout{ indent = #0 } -emptymusic = { - \repeat unfold 2 % Change this for more lines. - { s1\break } - \bar "|." -} -\new Score \with { - \override TimeSignature #'transparent = ##t -% un-comment this line if desired -% \override Clef #'transparent = ##t - defaultBarType = #"" - \remove Bar_number_engraver -} << - -% modify these to get the staves you want - \new Staff \emptymusic - \new TabStaff \emptymusic ->> +@lilypond[quote,ragged-right,verbatim] +\score { + \relative c'' { + c4\startGroup\startGroup + c4\stopGroup + c4\startGroup + c4\stopGroup\stopGroup + } + \layout { + \context { + \Staff \consists "Horizontal_bracket_engraver" +}}} @end lilypond +@seealso + +Fragmentos de código: @lsrdir{Editorial,Editorial-annotations}. + +Referencia de funcionamiento interno: @internalsref{HorizontalBracket}, +@internalsref{Horizontal_bracket_engraver}, @internalsref{Staff}. + + diff --git a/Documentation/es/user/expressive.itely b/Documentation/es/user/expressive.itely index 99af9deded..6181779c02 100644 --- a/Documentation/es/user/expressive.itely +++ b/Documentation/es/user/expressive.itely @@ -1,6 +1,6 @@ @c -*- coding: utf-8; mode: texinfo; -*- @ignore - Translation of GIT committish: 459d5b872a370b53f61e747784fb56cf23f56e4b + Translation of GIT committish: 7e040d362b174f596b1c458bd708defc69cdcc42 When revising a translation, copy the HEAD committish of the version that you are working on. See TRANSLATION for details. @@ -9,6 +9,9 @@ @node Expressive marks @section Expressive marks +@lilypondfile[quote,ragged-right,line-width=16\cm,staffsize=16] +{expressive-headword.ly} + @menu * Attached to notes:: * Curves:: @@ -21,14 +24,14 @@ @menu -* Articulations:: +* Articulations and ornamentations:: * Dynamics:: @end menu -@node Articulations -@unnumberedsubsubsec Articulations +@node Articulations and ornamentations +@subsubsection Articulations and ornamentations -@cindex Articulaciones +@cindex articulaciones @cindex guiones @cindex ornamentos @@ -126,7 +129,7 @@ representación de MIDI de la música. @node Dynamics -@unnumberedsubsubsec Dynamics +@subsubsection Dynamics @cindex Dynamics @funindex \pppp @@ -297,136 +300,16 @@ El posicionamiento vertical de estos símbolos se maneja por medio de @subsection Curves @menu -* Ties:: * Slurs:: * Phrasing slurs:: -* Laissez vibrer ties:: * Breath marks:: * Falls and doits:: @end menu -@node Ties -@unnumberedsubsubsec Ties - -@cindex ligadura de unión -@funindex ~ - -Una ligadura de unión conecta dos notas adyacentes de la misma altura. La ligadura -en efecto extiende la longitud de una nota. No deben confundirse las ligaduras de unión con -las ligaduras de expresión, que indican articulación, ni con las ligaduras de fraseo, que indican -el fraseo musical. Se introduce una ligadura de unión usando el símbolo de la tilde curva @samp{~} - -@lilypond[quote,ragged-right,fragment,verbatim] -e' ~ e' ~ -@end lilypond - -Cuando se aplica una ligadura de unión a un acorde, se conectan todas las cabezas de las notas cuyas alturas coinciden. -Si no coincide ningún par de cabezas, no se crea ninguna ligadura. Los acordes -se pueden ligar parcialmente colocando la ligadura dentro del acorde, - -@lilypond[quote,ragged-right,fragment,verbatim,relative=1] - -@end lilypond - -Una ligadura es simplemente una forma de extender la duración de una nota, parecida al -puntillo. El ejemplo siguiente muestra dos formas de escribir -exactamente el mismo concepto: - -@lilypond[quote,fragment,ragged-right] -\time 3/4 c'2. c'2 ~ c'4 -@end lilypond - -@noindent -Se usan ligaduras de expresión bien cuando la nota atraviesa la barra -de compás o bien cuando no se pueden usar puntillos para denotar el -ritmo. Cuando se usan ligaduras, las notas de mayor duración se deben alinear con las subdivisiones del compás, como - -@lilypond[fragment,quote,ragged-right] -\relative { - r8 c8 ~ c2 r4 | r8^"not" c2 ~ c8 r4 -} -@end lilypond - -Si necesita unir muchas notas a través de las líneas divisorias, puede -resultar más fácil utilizar la división automática de notas (vea -@ref{Automatic note splitting}). Este mecanismo divide las notas -largas de forma automática y las liga a través de las barras de compás. - -@funindex \repeatTie - -Cuando la segunda vez de una repetición comienza con una nota ligada, -es necesario repetir la ligadura. Esto se puede conseguir mediante @code{\repeatTie}, - -@lilypond[fragment,quote,ragged-right,relative=2] -r \repeatTie -@end lilypond - -@cindex ligaduras de repetición -@cindex corchetes de repetición de primera y segunda vez y ligaduras - -@commonprop - -A veces se usan ligaduras para escribir arpegios. En este caso, dos notas ligadas no -necesitan ser consecutivas. Esto se puede conseguir estableciendo la propiedad @code{tieWaitForNote} -(ligadura - esperar nota) al valor verdadero. La misma funcionalidad puede resultar útil, -por ejemplo, para ligar un trémolo a un acorde. Por ejemplo, - -@lilypond[fragment,verbatim,relative=1,ragged-right,quote] -\set tieWaitForNote = ##t -\grace { c16[~ e~ g]~ } 2 -\repeat tremolo 8 { c32~ c'~ } 1 -e8~ c~ a~ f~ 2 -@end lilypond - -Las ligaduras de pueden grabar manualmente modificando la propiedad -@code{tie-configuration}. El primer número indica la distancia desde -el centro del pentagrama en espacios de pentagrama, y el segundo -número indica la dirección (1 = hacia arriba, -1 = hacia abajo). - -@lilypond[fragment,verbatim,relative=1,ragged-right,quote] -2~ | -\override TieColumn #'tie-configuration = - #'((0.0 . 1) (-2.0 . 1) (-4.0 . 1)) -~ | -@end lilypond - - -@predefined - - -@funindex \tieUp -@code{\tieUp}, -@funindex \tieDown -@code{\tieDown}, -@funindex \tieNeutral -@code{\tieNeutral}, -@funindex \tieDotted -@code{\tieDotted}, -@funindex \tieDashed -@code{\tieDashed}, -@funindex \tieSolid -@code{\tieSolid}. - - -@seealso - -En el presente manual: @ref{Automatic note splitting}. - -Referencia del programa: @internalsref{Tie}. - - -@knownissues - -Un cambio de pentagrama cuando hay una ligadura activa no producirá una ligadura inclinada. - -Los cambios de clave o de octava durante una ligadura de unión no -están bien definidos realmente. En estos casos puede ser preferible una ligadura de expresión. - - @node Slurs -@unnumberedsubsubsec Slurs +@subsubsection Slurs -@cindex Ligaduras de expresión +@cindex ligaduras de expresión Una ligadura de expresión indica que las notas se deben tocar unidas o @emph{legato}. Se escriben utilizando paréntesis @@ -485,7 +368,7 @@ Referencia del programa: @internalsref{Slur}. @node Phrasing slurs -@unnumberedsubsubsec Phrasing slurs +@subsubsection Phrasing slurs @cindex ligaduras de fraseo @cindex marcas de fraseo @@ -521,32 +404,8 @@ No se pueden tener varias ligaduras de fraseo simultáneas. Referencia del programa: @internalsref{PhrasingSlur}. - -@node Laissez vibrer ties -@unnumberedsubsubsec Laissez vibrer ties -@cindex Laissez vibrer -@cindex Ligaduras laissez vibrer - -Las ligaduras L.v. (laissez vibrer, dejar vibrar) indican que las -notas no se deben apagar al final. Se usan en la notación para piano, -arpa y otros instrumentos de cuerda y percusión. Se pueden introducir escribiendo @code{\laissezVibrer}, - -@lilypond[fragment,ragged-right,verbatim,relative=1] -\laissezVibrer -@end lilypond - -@seealso - -Referencia del programa: -@internalsref{LaissezVibrerTie} -@internalsref{LaissezVibrerTieColumn} - -Archivos de ejemplo: -@lsr{connecting,laissez-vibrer-ties.ly} - - @node Breath marks -@unnumberedsubsubsec Breath marks +@subsubsection Breath marks Las marcas de respiración se introducen usando @code{\breathe} @@ -555,11 +414,12 @@ c'4 \breathe d4 @end lilypond -@commonprop +@snippets + +El glifo de la marca de respiración se puede ajustar por medio de la +sobreescritura de la propiedad @code{text} del objeto de presentación +@code{BreathingSign} con cualquier texto de marcado. Por ejemplo, -El glifo de la marca de respiración se puede ajustar por medio de la sobreescritura de la propiedad -@code{text} del objeto de presentación @code{BreathingSign} con cualquier texto de marcado. -Por ejemplo, @lilypond[quote,ragged-right,fragment,verbatim,relative=1] c'4 \override BreathingSign #'text @@ -576,7 +436,7 @@ Ejemplos: @lsr{expressive,breathing-sign.ly} @node Falls and doits -@unnumberedsubsubsec Falls and doits +@subsubsection Falls and doits Se pueden expresar caídas y subidas de tono (falls y doits) añadidas a las notas mediante el comando @code{\bendAfter}, @@ -595,11 +455,10 @@ c4-\bendAfter #-3 * Glissando:: * Arpeggio:: * Trills:: -* Analysis brackets:: @end menu @node Glissando -@unnumberedsubsubsec Glissando +@subsubsection Glissando @cindex Glissando @funindex \glissando @@ -642,7 +501,7 @@ La impresión de texto sobre la línea (como @emph{gliss.}) no está contemplada @node Arpeggio -@unnumberedsubsubsec Arpeggio +@subsubsection Arpeggio @cindex Arpeggio @cindex acorde quebrado @@ -720,7 +579,7 @@ No es posible mezclar arpegios conectados y no conectados en un @node Trills -@unnumberedsubsubsec Trills +@subsubsection Trills Los trinos cortos se imprimen como una articulación normal; consulte @ref{Articulations}. @@ -759,38 +618,7 @@ imprime como una cabeza de nota sin plica entre paréntesis. @seealso -Referencia del programa: @internalsref{TrillSpanner}. - - -@node Analysis brackets -@unnumberedsubsubsec Analysis brackets -@cindex corchetes -@cindex fraseo, corchetes de -@cindex musicológico, análisis -@cindex notas, corchetes de agrupación de - -Los corchetes se usan en análisis musical para indicar las estructuras presentes en las piezas -musicales. LilyPond contempla una forma básica de corchetes horizontales anidados. -Para usarlos, añada el grabador @internalsref{Horizontal_bracket_engraver} -al contexto @internalsref{Staff}. Un corchete se abre con -@code{\startGroup} y se cierra con @code{\stopGroup} - -@lilypond[quote,ragged-right,verbatim] -\score { - \relative c'' { - c4\startGroup\startGroup - c4\stopGroup - c4\startGroup - c4\stopGroup\stopGroup - } - \layout { - \context { - \Staff \consists "Horizontal_bracket_engraver" -}}} -@end lilypond - -@seealso - -Referencia del programa: @internalsref{HorizontalBracket}. +Fragmentos de código: @lsrdir{Expressive,Expressive-marks} +Referencia de funcionamiento interno: @internalsref{TrillSpanner}. diff --git a/Documentation/es/user/lilypond-learning.tely b/Documentation/es/user/lilypond-learning.tely index bfb081a744..fb2f1d6f95 100644 --- a/Documentation/es/user/lilypond-learning.tely +++ b/Documentation/es/user/lilypond-learning.tely @@ -119,7 +119,7 @@ Free Documentation License''. @c TRANSLATE ME @ifnottex -This file documents GNU LilyPond program usage. +Este archivo es la documentación sobre la utilización del programa GNU LilyPond. Copyright @copyright{} 1999--2007 por los autores @@ -158,27 +158,26 @@ Free Documentation License''. Éste es el manual de aprendizaje de GNU LilyPond, versión @version{}. -@cindex web site +@cindex página web @cindex URL -More information can be found at -@uref{http://@/www@/.lilypond@/.org/}. The website contains on-line copies -of this and other documentation. +Encontrará más información en +@uref{http://@/www@/.lilypond@/.org/}. La página web contiene copias +en línea de la presente y otras documentaciones. @menu * Preface:: Prefacio. * Introduction:: Qué, por qué y cómo. * Tutorial:: Introducción en forma de tutorial. -* Putting it all together:: Más explicaciones sobre conceptos de -LilyPond. -* Working on LilyPond projects:: Sobre la utilización en el mundo -real. -* Tweaking output:: Introducción a las modificaciones de -la salida. +* Fundamental concepts:: Conceptos básicos necesarios para leer el resto de este manual. +* Tweaking output:: Introducción a las modificaciones de la salida. +* Working on LilyPond projects:: Sobre la utilización en el mundo real. Apéndices -* GNU Free Documentation License:: License of this document. +* Templates:: Plantillas listas para usar. +* Scheme tutorial:: Programar dentro de LilyPond. +* GNU Free Documentation License:: La licencia de este documento. * LilyPond index:: @end menu @end ifnottex @@ -190,9 +189,11 @@ Apéndices @include introduction.itely @include tutorial.itely @include putting.itely -@include working.itely @include tweaks.itely +@include working.itely +@include templates.itely +@include scheme-tutorial.itely @include fdl.itexi @node LilyPond index diff --git a/Documentation/es/user/lilypond.tely b/Documentation/es/user/lilypond.tely index c76de7ac1b..8486357d6b 100644 --- a/Documentation/es/user/lilypond.tely +++ b/Documentation/es/user/lilypond.tely @@ -1,6 +1,6 @@ \input texinfo @c -*- coding: utf-8; mode: texinfo; -*- @ignore - Translation of GIT committish: 993fc5189dc039afd51a98df9b71adf59f2ab20f + Translation of GIT committish: ef9e465a87b15c4fab12e08337a40b9afe1d3766 When revising a translation, copy the HEAD committish of the version that you are working on. See TRANSLATION for details. @@ -40,16 +40,21 @@ Distributions will want to install lilypond.info in postinstall, doing: @c -@c Info files are installed in subdirectories to allow images to be present. -@c -@dircategory LilyPond +@c Info files are no longer installed in a subdirectory, images are +@c expected to be found in lilypond/ subdirectory. +@dircategory GNU LilyPond: el tipografiador de música. @direntry -* LilyPond: (lilypond/lilypond). El tipografiador de música de GNU. -* abc2ly: (lilypond/lilypond-program)Invocar abc2ly. Importar archivos de ABC. -* convert-ly: (lilypond/lilypond-program)Invocar convert-ly. Versiones de LilyPond antiguas. -* etf2ly: (lilypond/lilypond-program)Invocar etf2ly. Importar archivos de Finale. -* lilypond-book: (lilypond/lilypond-program)LilyPond-book. Integrar texto y música. -* midi2ly: (lilypond/lilypond-program)Invocar midi2ly. Importar archivos MIDI. +* LilyPond Learning Manual: (lilypond-learning). Comience por aquí. +* Music Glossary: (music-glossary). Para usuarios de habla no inglesa. +* LilyPond: (lilypond). Referencia de la notación con LilyPond. +* LilyPond Internals Reference: (lilypond-internals). Definiciones para el trucaje. +* LilyPond Application Usage: (lilypond-program). Instalar y ejecutar las aplicaciones. +* abc2ly: (lilypond-program)Invocar abc2ly. Importar archivos de ABC. +* convert-ly: (lilypond-program)Actualizar archivos mediante convert-ly. Versiones de LilyPond antiguas. +* etf2ly: (lilypond-program)Invocar etf2ly. Importar archivos de Finale. +* lilypond-book: (lilypond-program)LilyPond-book. Integrar texto y música. +* midi2ly: (lilypond-program)Invocar midi2ly. Importar archivos MIDI. +* musicxml2ly: (lilypond-program)Invocar musicxml2ly. Importar MusicXML. @end direntry @c don't remove this comment. @@ -183,7 +188,7 @@ Free Documentation License''. @top GNU LilyPond --- El tipografiador de música @c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX. -Éste es el manual del usuario para GNU LilyPond versión @version{}. +Éste es el manual del usuario del programa GNU LilyPond versión @version{}. @cindex web, sitio @cindex URL @@ -196,20 +201,18 @@ de la presente documentación y de otras. @c TRANSLATE ME @menu -* Musical notation:: Musical notation. -* Specialist notation:: Notation which is only used for -specicific purposes. -* Changing defaults:: Ajuste fino de la salida. +* Musical notation:: Notación musical. +* Specialist notation:: Notación especializada. +* Input syntax:: General information about lilypond input files. * Non-musical notation:: Salida que no es notación musical. * Spacing issues:: Presentación de la salida sobre papel. +* Changing defaults:: Ajuste fino de la salida. * Interfaces for programmers:: Utilización por expertos. Apéndices * Literature list:: Obras de referencia sobre notación musical. -* Scheme tutorial:: Programación dentro de LilyPond. * Notation manual tables:: Tablas y cuadros. -* Templates:: Plantillas ya preparadas. * Cheat sheet:: Resumen de la sintaxis de LilyPond. * GNU Free Documentation License:: Licencia de este documento. * LilyPond command index:: @@ -223,16 +226,15 @@ Apéndices @include notation.itely @include specialist.itely -@include changing-defaults.itely +@include input.itely @include non-music.itely @include spacing.itely -@include programming-interface.itely +@include changing-defaults.itely +@include programming-interface.itely @include literature.itely -@include scheme-tutorial.itely @include notation-appendices.itely -@include templates.itely @include cheatsheet.itely @include fdl.itexi diff --git a/Documentation/es/user/pitches.itely b/Documentation/es/user/pitches.itely index 71055adf2a..0ac1e2a566 100644 --- a/Documentation/es/user/pitches.itely +++ b/Documentation/es/user/pitches.itely @@ -1,82 +1,168 @@ @c -*- coding: utf-8; mode: texinfo; -*- @ignore - Translation of GIT committish: 459d5b872a370b53f61e747784fb56cf23f56e4b + Translation of GIT committish: a7074882aac1078e15104577c36ac4b35ece0ae4 When revising a translation, copy the HEAD committish of the version that you are working on. See TRANSLATION for details. @end ignore + @node Pitches @section Pitches -This section discusses how to specify the pitch of notes. +@lilypondfile[quote,ragged-right,line-width=16\cm,staffsize=16] +{pitches-headword.ly} + +En esta sección se discute cómo especificar la altura de las notas. +Este proceso se compone de tres fases: entrada, modificación y salida. @menu * Writing pitches:: * Changing multiple pitches:: * Displaying pitches:: +* Note heads:: @end menu @node Writing pitches @subsection Writing pitches -Into text. +En esta sección se describe la manera de introducir la altura de las +notas. Esisten dos formas distintas de colocar las notas en su octava +correspondiente: el modo absoluto y el relativo. En casi todas las +ocasiones, será más práctico el modo relativo. @menu -* Normal pitches:: +* Absolute octave entry:: +* Relative octave entry:: * Accidentals:: -* Cautionary accidentals:: -* Micro tones:: * Note names in other languages:: @end menu -@node Normal pitches -@unnumberedsubsubsec Normal pitches -@cindex Nombres de las notas +@node Absolute octave entry +@subsubsection Absolute octave entry + +@cindex nombres de las notas @cindex alturas +@cindex absoluta +@cindex absoluta, especificación, de la octava -El nombre de una nota se especifica usando las letras minúsculas de la @code{a} a la @code{g}. -Una escala ascendente de Do mayor se tipografía con +El nombre de una nota se especifica usando las letras minúsculas de la +@code{a} a la @code{g}. Las notas cuyos nombres van desde @code{c} +hasta @code{b} se imprimen en la octava inferior al Do central. -@lilypond[quote,fragment,verbatim,ragged-right] +@c NOTE: don't use c' here. +@lilypond[verbatim,quote,ragged-right,fragment] \clef bass -c d e f g a b c' +c d e f +g a b c +d e f g @end lilypond -El nombre de la nota @code{c} se tipografía una octava por debajo del Do central. +@funindex ' +@funindex , -@lilypond[quote,fragment,verbatim,ragged-right] +Se pueden especificar otras octavas mediante una comilla simple +quote@tie{}(@code{'}) o una coma@tie{}(@code{,}) . +Cada@tie{}@code{'} eleva la altura en una octava; cada@tie{}@code{,} +baja la altura una octava. + +@lilypond[verbatim,quote,ragged-right,fragment] \clef treble -c1 +c' c'' e' g +d'' d' d c \clef bass -c1 +c, c,, e, g +d,, d, d c @end lilypond -@funindex ' -@funindex , +@seealso + +Music Glossary: @rglos{Pitch names}. + +Snippets: @lsrdir{Pitches,Pitches}. -La especificación opcional de la octava tiene la forma de una serie de -comillas simples o apóstrofes (@samp{'}) o bien una serie de comas -(@samp{,}). Cada @samp{'} eleva la altura una octava; -cada @samp{,} baja la altura una octava. + +@node Relative octave entry +@subsubsection Relative octave entry + +@cindex Relativo +@cindex Relativas, especificación de octavas +@funindex \relative + +Las octavas se especifican añadiendo @code{'} y @code{,} a los nombres de las notas. +Cuando copie música existente, es fácil poner por accidente una nota en la octava +equivocada y luego es difícil encontrar dicho error. La octava relativa +previene estos errores haciendo que éstos tengan consecuencias mucho mayores: +un solo error transporta una octava el resto de la pieza + +@example +\relative @var{altura_inicial} @var{expresión_musical} +@end example + +@noindent +o bien + +@example +\relative @var{expresión_musical} +@end example + +@noindent +@code{c'} se usa por defecto si no se define una altura inicial. + +La octava de las notas que aparecen dentro de @var{expresión_musical} se calculan como +sigue: si no se usa ninguna marca de cambio de octava, el intervalo básico +entre la nota actual y la anterior se toma siempre como si fuera una cuarta o menos. +Esta distancia se determina independientemente de las alteraciones; un +@code{fisis} (Fa doble sostenido) después de un @code{ceses} (Do doble bemol) se colocará +por encima del @code{ceses}. En otras palabras, una cuarta doble aumentada se considera +un intervalo menor que una quinta disminuida, incluso aunque la cuarta doble aumentada +tiene siete semitonos mientras que la quinta disminuida sólo tiene seis semitonos. + +Las marcas de cambio de octava @code{'} y @code{,} se pueden añadir para +elevar o bajar la altura en una octava más. Al entrar en el modo relativo, +se puede especificar una altura de inicio absoluta que se comportará como +la nota precedente a la primera nota de la @var{expresión_musical}. Si no +se especifica ninguna altura inicial, se utilizará el Do central como +comienzo. + +Aquí podemos ver el modo relativo en acción: +@lilypond[quote,fragment,ragged-right,verbatim] +\relative c'' { + b c d c b c bes a +} +@end lilypond + +Las marcas de cambio de octava se utilizan para intervalos mayores de la cuarta @lilypond[quote,ragged-right,fragment,verbatim] -\clef treble -c' c'' e' g d'' d' d c -\clef bass -c, c,, e, g d,, d, d c +\relative c'' { + c g c f, c' a, e'' +} +@end lilypond + +Si el elemento anterior es un acorde, la primera nota del acorde se utiliza para +determinar la primera nota del siguiente acorde + +@lilypond[quote,ragged-right,fragment,verbatim] +\relative c' { + c + + +} @end lilypond -Se puede usar un método alternativo para declarar en qué octava grabar -una nota; este método no requiere tantas especificaciones de octava -(@code{'} y @code{,}). Consulte -@ref{Relative octaves}. +La altura después del @code{\relative} contiene un nombre de nota. + +La conversión relativa no afecta a las secciones @code{\transpose}, +@code{\chordmode} o @code{\relative} en su argumento. Para usar +el modo relativo dentro de música transportada, se debe escribir +un @code{\relative} adicional dentro de @code{\transpose}. @node Accidentals -@unnumberedsubsubsec Accidentals +@subsubsection Accidentals @cindex nombres de las notas, holandés @cindex nombres de las notas, por omisión @@ -140,9 +226,6 @@ Referencia del programa: @internalsref{LedgerLineSpanner}, @internalsref{NoteHead}. -@node Cautionary accidentals -@unnumberedsubsubsec Cautionary accidentals - @cindex alteración recordatoria @cindex alteración de precaución @cindex alteración con paréntesis @@ -170,10 +253,6 @@ cis cis cis! cis? c c? c! c La producción automática de alteraciones accidentales se puede ajustar de muchas formas. Para ver más información, consulte @ref{Automatic accidentals}. - -@node Micro tones -@unnumberedsubsubsec Micro tones - @cindex cuartos de tono @cindex semi-bemoles, semi-sostenidos @@ -196,7 +275,7 @@ no se ajustan a ningún estándar. @node Note names in other languages -@unnumberedsubsubsec Note names in other languages +@subsubsection Note names in other languages Existen conjuntos predefinidos de nombres de notas para algunos idiomas aparte del inglés. Para usarlos, incluya el archivo de inicio @@ -261,93 +340,18 @@ espanol.ly do re mi fa sol la sib si @subsection Changing multiple pitches @menu -* Relative octaves:: -* Octave check:: +* Octave checks:: * Transpose:: @end menu -@node Relative octaves -@unnumberedsubsubsec Relative octaves - -@cindex Relativo -@cindex Relativas, especificación de octavas -@funindex \relative - -Las octavas se especifican añadiendo @code{'} y @code{,} a los nombres de las notas. -Cuando copie música existente, es fácil poner por accidente una nota en la octava -equivocada y luego es difícil encontrar dicho error. La octava relativa -previene estos errores haciendo que éstos tengan consecuencias mucho mayores: -un solo error transporta una octava el resto de la pieza - -@example -\relative @var{altura_inicial} @var{expresión_musical} -@end example - -@noindent -o bien - -@example -\relative @var{expresión_musical} -@end example +@node Octave checks +@subsubsection Octave checks -@noindent -@code{c'} se usa por defecto si no se define una altura inicial. - -La octava de las notas que aparecen dentro de @var{expresión_musical} se calculan como -sigue: si no se usa ninguna marca de cambio de octava, el intervalo básico -entre la nota actual y la anterior se toma siempre como si fuera una cuarta o menos. -Esta distancia se determina independientemente de las alteraciones; un -@code{fisis} (Fa doble sostenido) después de un @code{ceses} (Do doble bemol) se colocará -por encima del @code{ceses}. En otras palabras, una cuarta doble aumentada se considera -un intervalo menor que una quinta disminuida, incluso aunque la cuarta doble aumentada -tiene siete semitonos mientras que la quinta disminuida sólo tiene seis semitonos. - -Las marcas de cambio de octava @code{'} y @code{,} se pueden añadir para -elevar o bajar la altura en una octava más. Al entrar en el modo relativo, -se puede especificar una altura de inicio absoluta que se comportará como -la nota precedente a la primera nota de la @var{expresión_musical}. Si no -se especifica ninguna altura inicial, se utilizará el Do central como -comienzo. - -Aquí podemos ver el modo relativo en acción: -@lilypond[quote,fragment,ragged-right,verbatim] -\relative c'' { - b c d c b c bes a -} -@end lilypond - -Las marcas de cambio de octava se utilizan para intervalos mayores de la cuarta - -@lilypond[quote,ragged-right,fragment,verbatim] -\relative c'' { - c g c f, c' a, e'' -} -@end lilypond - -Si el elemento anterior es un acorde, la primera nota del acorde se utiliza para -determinar la primera nota del siguiente acorde - -@lilypond[quote,ragged-right,fragment,verbatim] -\relative c' { - c - - -} -@end lilypond - -La altura después del @code{\relative} contiene un nombre de nota. - -La conversión relativa no afecta a las secciones @code{\transpose}, -@code{\chordmode} o @code{\relative} en su argumento. Para usar -el modo relativo dentro de música transportada, se debe escribir -un @code{\relative} adicional dentro de @code{\transpose}. - - -@node Octave check -@unnumberedsubsubsec Octave check - -@cindex Comprobación de octava +@cindex octava, comprobación de +@cindex octava, corrección de +@funindex = +@funindex \octave Las comprobaciones de octava hacen que los errores de octava sean más fáciles de corregir: una nota puede venir seguida de @code{=}@var{comillas} @@ -406,8 +410,12 @@ así que la comprobación se puede borrar sin que cambie la salida de la pieza. @end lilypond +@seealso + +Snippets: @lsrdir{Pitches,Pitches}. + @node Transpose -@unnumberedsubsubsec Transpose +@subsubsection Transpose @cindex Transposición @cindex Transposición de alturas @@ -497,10 +505,12 @@ debe escribir @code{\transpose} por fuera de @code{\relative}, porque * Key signature:: * Ottava brackets:: * Instrument transpositions:: +* Automatic accidentals:: +* Ambitus:: @end menu @node Clef -@unnumberedsubsubsec Clef +@subsubsection Clef @funindex \clef @@ -542,7 +552,6 @@ clave de Do en 1ª @item @code{mezzosoprano} @tab clave de Do en 2ª @item @code{baritone} @tab -clave de Do en 5ª @item @code{varbaritone} @tab clave de Fa en 3ª @item @code{subbass} @tab @@ -604,7 +613,7 @@ Referencia del programa: @internalsref{Clef}. @node Key signature -@unnumberedsubsubsec Key signature +@subsubsection Key signature @cindex Armadura de la tonalidad @funindex \key @@ -678,7 +687,7 @@ Referencia del programa: @internalsref{KeyCancellation}, @internalsref{KeySignature}. @node Ottava brackets -@unnumberedsubsubsec Ottava brackets +@subsubsection Ottava brackets Los corchetes de @q{Ottava} introducen un trasporte adicional de una octava para el pentagrama. Se crean por medio de la invocación de la función @@ -725,7 +734,7 @@ en el interior de un corchete de octavación. @node Instrument transpositions -@unnumberedsubsubsec Instrument transpositions +@subsubsection Instrument transpositions @cindex transposición de MIDI @cindex transposición instrumental @@ -778,3 +787,235 @@ c'4^"en Sol" ... @end example +@node Automatic accidentals +@subsubsection Automatic accidentals + +UNTRANSLATED NODE: IGNORE ME + +@node Ambitus +@subsubsection Ambitus + +@cindex ambitus +@cindex rango de alturas +@cindex tesitura + +El término @emph{ambitus} o ámbito, denota el rango de notas que +abarca una voz dada en una parte musical. También puede denotar el +margen de notas que es capaz de tocar un determinado instrumento +musical. Los ámbitos se imprimen en las partes vocales de tal manera +que los intérpretes puedan determinar con facilidad si cumplen con sus +propias posibilidades. + +Los ámbitos se presentan al comienzo de la pieza junto a la clave +inicial. El rango se especifica gráficamente mediante dos cabezas de +nota que representan a las notas inferior y superior. Sólo se +imprimen alteraciones si no forman parte de la armadura de la +tonalidad. + +@lilypond[verbatim,quote,ragged-right] +\layout { + \context { + \Voice + \consists Ambitus_engraver + } +} + +\relative c'' { + aes c e2 cis,2 +} +@end lilypond + +Si tiene varias voces en un pentagrama único y quiere tener una sola indicación de ámbito +por pentagrama en lugar de una por cada voz, añada el grabador +@internalsref{Ambitus_engraver} al contexto @internalsref{Staff} +y no al contexto @internalsref{Voice}. He aquí un ejemplo: + +@lilypond[verbatim,ragged-right,quote] +\new Staff \with { + \consists "Ambitus_engraver" +} +<< + \new Voice \with { + \remove "Ambitus_engraver" + } \relative c'' { + \override Ambitus #'X-offset = #-1.0 + \voiceOne + c4 a d e f2 + } + \new Voice \with { + \remove "Ambitus_engraver" + } \relative c' { + \voiceTwo + es4 f g as b2 + } +>> +@end lilypond + +@noindent +Este ejemplo utiliza una capacidad avanzada, + +@example +\override Ambitus #'X-offset = #-1.0 +@end example + +@noindent +Este código mueve el ámbito a la izquierda. Se podría haber conseguido el mismo +efecto con @code{extra-offset}, pero en tal caso el sistema de formateo no +reservaría espacio para el objeto que se ha movido. + +@seealso + +Referencia del programa: @internalsref{Ambitus}, +@internalsref{AmbitusLine}, @internalsref{AmbitusNoteHead}, +@internalsref{AmbitusAccidental}. + +Ejemplos: +@lsr{vocal,ambitus@/.ly}. + +@knownissues + +No se efectúa un tratamiento de las posibles colisiones en caso de varias indicaciones de ámbito +simultáneas en distintas voces. + +@node Note heads +@subsection Note heads + +@menu +* Special note heads:: +* Easy notation note heads:: +* Shape note heads:: +* Improvisation:: +@end menu + +@node Special note heads +@subsubsection Special note heads + +@cindex note heads, special +@cindex note heads, cross +@cindex note heads, diamond +@cindex note heads, parlato +@cindex note heads, harmonic +@cindex note heads, guitar +@cindex special note heads +@cindex cross note heads +@cindex diamond note heads +@cindex parlato note heads +@cindex harmonic note heads +@cindex guitar note heads + +Different note heads are used by various instruments for various +meanings -- crosses are used for @q{parlato} with vocalists, +stopped notes on guitar; diamonds are used for harmonics on string +instruments, etc. There is a shorthand (@code{\harmonic}) for +diamond shapes; the other note head styles are produced by +tweaking the property: + +@lilypond[verbatim,quote,ragged-right,fragment,relative=1] +c4 d +\override NoteHead #'style = #'cross +e f +\revert NoteHead #'style +e d +@end lilypond + +@noindent +To see all note head styles, see @ref{Note head styles}. + + +@seealso + +Snippets: @lsrdir{Pitches,Pitches}. + +Notation Reference: @ref{Note head styles}. + +Internals Reference: @internalsref{NoteHead}, +@internalsref{LedgerLineSpanner}. + +@node Easy notation note heads +@subsubsection Easy notation note heads + +@cindex notas, cabezas de, estudio +@cindex notas, cabezas de, notación simplificada +@cindex simplificada, notación +@cindex Hal Leonard + +Las cabezas @q{easy play} (fáciles de tocar) tienen el nombre de la nota (en inglés) dentro de la cabeza. Se usa +en la música para principiantes + +@lilypond[verbatim,quote,ragged-right] +#(set-global-staff-size 26) +\relative c' { + \easyHeadsOn + c2 e4 f + g1 + \easyHeadsOff + c,1 +} +@end lilypond + +La orden @code{\easyHeadsOn} sobreescribe los ajustes del objeto +@code{NoteHead}. Estos ajustes se pueden deshacer mediante la +isntrucción @code{\easyHeadsOff}. Para que las letras sean legibles, +se tienen que imprimir en un tamaño grande de la tipografía. Para +imprimir con un tamaño de tipografía mayor, consulte @ref{Setting the +staff size}. + +@predefined + +@funindex \easyHeadsOn +@funindex \easyHeadsOff +@code{\easyHeadsOn}, @code{\easyHeadsOff} + + +@node Shape note heads +@subsubsection Shape note heads + +@cindex notas, cabezas de, con formas +@cindex notas, cabezas de, Aiken +@cindex notas, cabezas de, sacred harp(?) +@cindex formas, notas con +@cindex Aiken, cabezas de nota con forma de +@cindex sacred harp, cabezas de nota de +@funindex \key +@funindex shapeNoteStyles +@funindex \aikenHeads +@funindex \sacredHarpHeads + +En notación de cabezas con forma, la forma de la cabeza corresponde +a la función armónica de una nota dentro de la escala. Esta notación se hizo popular +en los libros americanos de canciones durante el s.XIX. + +Las cabezas con formas se pueden producir estableciendo @code{\aikenHeads} o +@code{\sacredHarpHeads}, según el estilo deseado. + +@lilypond[verbatim,relative=1,fragment] + \aikenHeads + c8 d4 e8 a2 g1 + \sacredHarpHeads + c8 d4. e8 a2 g1 +@end lilypond + +Las formas se determinan en función del grado de la escala, donde la tónica +está determinada por la instrucción @code{\key} + +@funindex \key +@funindex shapeNoteStyles +@funindex \aikenHeads +@funindex \sacredHarpHeads + +Las cabezas con formas están programadas a través de la propiedad @code{shapeNoteStyles}. +Su valor es un vector de símbolos. El elemento en el lugar k indica qué estilo +usa el grado k de la escala. Son posibles las combinaciones +arbitrarias, p.ej.: + +@lilypond[verbatim,relative=1,fragment] + \set shapeNoteStyles = ##(cross triangle fa #f mensural xcircle diamond) + c8 d4. e8 a2 g1 +@end lilypond + + +@node Improvisation +@subsubsection Improvisation + +UNTRANSLATED NODE: IGNORE ME + diff --git a/Documentation/es/user/rhythms.itely b/Documentation/es/user/rhythms.itely index ee1ece7bec..1adff58ca0 100644 --- a/Documentation/es/user/rhythms.itely +++ b/Documentation/es/user/rhythms.itely @@ -1,6 +1,6 @@ @c -*- coding: utf-8; mode: texinfo; -*- @ignore - Translation of GIT committish: 459d5b872a370b53f61e747784fb56cf23f56e4b + Translation of GIT committish: f9251f6baccf426a9184b7947a85bbacc807a043 When revising a translation, copy the HEAD committish of the version that you are working on. See TRANSLATION for details. @@ -9,7 +9,10 @@ @node Rhythms @section Rhythms -This section discusses rhythms, durations, and bars. +@lilypondfile[ragged-right,line-width=16\cm,staffsize=14,quote] +{rhythms-headword.ly} + +Esta sección trata de los ritmos, las duraciones y los compases. @menu * Writing rhythms:: @@ -29,10 +32,11 @@ This section discusses rhythms, durations, and bars. * Augmentation dots:: * Tuplets:: * Scaling durations:: +* Ties:: @end menu @node Durations -@unnumberedsubsubsec Durations +@subsubsection Durations @cindex duración @funindex \longa @@ -91,7 +95,7 @@ anterior. Por omisión, el valor de la primera nota es el de una negra. @node Augmentation dots -@unnumberedsubsubsec Augmentation dots +@subsubsection Augmentation dots @funindex . @@ -121,7 +125,7 @@ Referencia del programa: @internalsref{Dots} y @internalsref{DotColumn}. @node Tuplets -@unnumberedsubsubsec Tuplets +@subsubsection Tuplets @cindex grupos especiales @cindex tresillos @@ -269,7 +273,7 @@ Referencia del programa: @internalsref{TupletBracket}, @node Scaling durations -@unnumberedsubsubsec Scaling durations +@subsubsection Scaling durations Es posible alterar la duración de las figuras en un factor @var{N/M} añadiendo @samp{*@var{N/M}} (o @samp{*@var{N}} si @var{M=1}). Esto no @@ -292,6 +296,154 @@ b16*4 c4 En este manual: @ref{Tuplets}. +@node Ties +@subsubsection Ties + +@cindex ligadura de unión +@funindex ~ + +Una ligadura de unión conecta dos notas adyacentes de la misma altura. La ligadura +en efecto extiende la longitud de una nota. No deben confundirse las ligaduras de unión con +las ligaduras de expresión, que indican articulación, ni con las ligaduras de fraseo, que indican +el fraseo musical. Se introduce una ligadura de unión usando el símbolo de la tilde curva @samp{~} + +@lilypond[quote,ragged-right,fragment,verbatim] +e' ~ e' ~ +@end lilypond + +Cuando se aplica una ligadura de unión a un acorde, se conectan todas las cabezas de las notas cuyas alturas coinciden. +Si no coincide ningún par de cabezas, no se crea ninguna ligadura. Los acordes +se pueden ligar parcialmente colocando la ligadura dentro del acorde, + +@lilypond[quote,ragged-right,fragment,verbatim,relative=1] + +@end lilypond + +Una ligadura es simplemente una forma de extender la duración de una nota, parecida al +puntillo. El ejemplo siguiente muestra dos formas de escribir +exactamente el mismo concepto: + +@lilypond[quote,fragment,ragged-right] +\time 3/4 c'2. c'2 ~ c'4 +@end lilypond + +@noindent +Se usan ligaduras de expresión bien cuando la nota atraviesa la barra +de compás o bien cuando no se pueden usar puntillos para denotar el +ritmo. Cuando se usan ligaduras, las notas de mayor duración se deben alinear con las subdivisiones del compás, como + +@lilypond[fragment,quote,ragged-right] +\relative { + r8 c8 ~ c2 r4 | r8^"not" c2 ~ c8 r4 +} +@end lilypond + +Si necesita unir muchas notas a través de las líneas divisorias, puede +resultar más fácil utilizar la división automática de notas (vea +@ref{Automatic note splitting}). Este mecanismo divide las notas +largas de forma automática y las liga a través de las barras de compás. + +@funindex \repeatTie + +Cuando la segunda vez de una repetición comienza con una nota ligada, +es necesario repetir la ligadura. Esto se puede conseguir mediante @code{\repeatTie}, + +@lilypond[fragment,quote,ragged-right,relative=2,verbatim] +\repeat volta 2 { c g 2 ~ } +\alternative {{ 2. r4 } {2\repeatTie d4 c }} +@end lilypond + +@cindex laissez vibrer +@cindex ligaduras laissez vibrer + +Las ligaduras @notation{L.v.} (@notation{laissez vibrer}, dejar +vibrar) indican que las notas no se deben apagar al final. Se usan en +la notación para piano, arpa y otros instrumentos de cuerda y +percusión. Se pueden introducir escribiendo @code{\laissezVibrer}: + +@lilypond[fragment,ragged-right,verbatim,relative=1] +\laissezVibrer +@end lilypond + +Es posible controlar la colocación vertical de las ligaduras de unión; +véase @ref{Controlling direction}. + + +@seealso + +Referencia del programa: +@internalsref{LaissezVibrerTie} +@internalsref{LaissezVibrerTieColumn} + +Archivos de ejemplo: +@lsr{connecting,laissez-vibrer-ties.ly} + + + +@cindex ligaduras de repetición +@cindex corchetes de repetición de primera y segunda vez y ligaduras + +@commonprop + +A veces se usan ligaduras para escribir arpegios. En este caso, dos notas ligadas no +necesitan ser consecutivas. Esto se puede conseguir estableciendo la propiedad @code{tieWaitForNote} +(ligadura - esperar nota) al valor verdadero. La misma funcionalidad puede resultar útil, +por ejemplo, para ligar un trémolo a un acorde. Por ejemplo, + +@lilypond[fragment,verbatim,relative=1,ragged-right,quote] +\set tieWaitForNote = ##t +\grace { c16[~ e~ g]~ } 2 +\repeat tremolo 8 { c32~ c'~ } 1 +e8~ c~ a~ f~ 2 +@end lilypond + +Las ligaduras se pueden grabar manualmente modificando la propiedad +@code{tie-configuration} del objeto @code{TieColumn}. El primer +número indica la distancia desde el centro del pentagrama en espacios +de pentagrama, y el segundo número indica la dirección (1 = hacia +arriba, -1 = hacia abajo). + +@lilypond[fragment,verbatim,relative=1,ragged-right,quote] +2~ | +\override TieColumn #'tie-configuration = + #'((0.0 . 1) (-2.0 . 1) (-4.0 . 1)) +~ | +@end lilypond + + +@predefined + + +@funindex \tieUp +@code{\tieUp}, +@funindex \tieDown +@code{\tieDown}, +@funindex \tieNeutral +@code{\tieNeutral}, +@funindex \tieDotted +@code{\tieDotted}, +@funindex \tieDashed +@code{\tieDashed}, +@funindex \tieSolid +@code{\tieSolid}. + + +@seealso + +En el presente manual: @ref{Automatic note splitting}. + +Referencia del programa: @internalsref{Tie}. + + +@knownissues + +Un cambio de pentagrama cuando hay una ligadura activa no producirá una ligadura inclinada. + +Los cambios de clave o de octava durante una ligadura de unión no +están bien definidos realmente. En estos casos puede ser preferible una ligadura de expresión. + + + @node Writing rests @subsection Writing rests @@ -302,7 +454,7 @@ En este manual: @ref{Tuplets}. @end menu @node Rests -@unnumberedsubsubsec Rests +@subsubsection Rests @cindex Silencios @funindex \rest @@ -338,7 +490,7 @@ Referencia del programa: @internalsref{Rest}. @node Skips -@unnumberedsubsubsec Skips +@subsubsection Skips @cindex Desplazamiento @cindex Silencio invisible @@ -383,7 +535,7 @@ Referencia del programa: @internalsref{SkipMusic}. @node Multi measure rests -@unnumberedsubsubsec Multi measure rests +@subsubsection Multi measure rests @cindex multicompás, silencios @cindex compás completo, silencios de @@ -510,7 +662,7 @@ de los compases estará desactivada. @end menu @node Time signature -@unnumberedsubsubsec Time signature +@subsubsection Time signature @cindex Indicación de compás @cindex metro, medida @@ -592,7 +744,7 @@ EL barrado automático no utiliza la agrupación de compases especificada con @node Upbeats -@unnumberedsubsubsec Upbeats +@subsubsection Upbeats @cindex anacrusa @cindex parte al alzar @@ -647,7 +799,7 @@ desagradables. @node Unmetered music -@unnumberedsubsubsec Unmetered music +@subsubsection Unmetered music @cindex cadencia @funindex \cadenzaOn @@ -684,13 +836,13 @@ para indicar dónde se pueden producir los saltos. @node Polymetric notation -@unnumberedsubsubsec Polymetric notation +@subsubsection Polymetric notation UNTRANSLATED NODE: IGNORE ME @node Automatic note splitting -@unnumberedsubsubsec Automatic note splitting +@subsubsection Automatic note splitting Las notas largas se pueden convertir automáticamente en notas ligadas. Se hace mediante la sustitución del @internalsref{Note_heads_engraver} @@ -741,7 +893,7 @@ Referencia del programa: @internalsref{Completion_heads_engraver}. @end menu @node Automatic beams -@unnumberedsubsubsec Automatic beams +@subsubsection Automatic beams LilyPond inserta las barras de corchea automáticamente @@ -768,7 +920,7 @@ Referencia del programa: @internalsref{Beam}. @node Manual beams -@unnumberedsubsubsec Manual beams +@subsubsection Manual beams @cindex barras manuales @funindex ] @@ -852,7 +1004,7 @@ rodean las notas, como los textos y las alteraciones. @node Feathered beams -@unnumberedsubsubsec Feathered beams +@subsubsection Feathered beams UNTRANSLATED NODE: IGNORE ME @@ -869,7 +1021,7 @@ UNTRANSLATED NODE: IGNORE ME @end menu @node Bar check -@unnumberedsubsubsec Bar check +@subsubsection Bar check @cindex Compás, comprobación de @funindex barCheckSynchronize @@ -914,7 +1066,7 @@ pipeSymbol = \bar "||" @node Bar lines -@unnumberedsubsubsec Bar lines +@subsubsection Bar lines @cindex Barras de compás @funindex \bar @@ -999,7 +1151,7 @@ Referencia del programa: @internalsref{BarLine} (creada al nivel de @node Bar numbers -@unnumberedsubsubsec Bar numbers +@subsubsection Bar numbers @cindex Compás, números de @cindex números de compás @@ -1066,7 +1218,7 @@ colocar el número correctamente. @node Barnumber check -@unnumberedsubsubsec Barnumber check +@subsubsection Barnumber check Al copiar piezas musicales grandes puede servir de ayuda comprobar que el número de compás de LilyPond corresponde al original desde el que está copiando. @@ -1082,7 +1234,7 @@ compás actual) no es 123 cuando se está procesando. @node Rehearsal marks -@unnumberedsubsubsec Rehearsal marks +@subsubsection Rehearsal marks @cindex Ensayo, letras de @funindex \mark @@ -1196,7 +1348,7 @@ Ejemplos: @lsr{parts,rehearsal-mark-numbers.ly} @end menu @node Grace notes -@unnumberedsubsubsec Grace notes +@subsubsection Grace notes @funindex \grace @cindex ornamentos @@ -1405,7 +1557,7 @@ yuxtaposición de secciones de adorno, y podría producir caídas u otros errore @node Aligning to cadenzas -@unnumberedsubsubsec Aligning to cadenzas +@subsubsection Aligning to cadenzas En un contexto orquestal, las cadenzas presentan un problema especial: al construir una partitura que tiene una cadenza, todos los demás instrumentos @@ -1435,13 +1587,13 @@ cadenza = \relative c' { @node Time administration -@unnumberedsubsubsec Time administration +@subsubsection Time administration UNTRANSLATED NODE: IGNORE ME @node Proportional notation (introduction) -@unnumberedsubsubsec Proportional notation (introduction) +@subsubsection Proportional notation (introduction) UNTRANSLATED NODE: IGNORE ME diff --git a/Documentation/fr/user/fundamental.itely b/Documentation/fr/user/fundamental.itely index 764d7e679f..17a6cdf3e6 100644 --- a/Documentation/fr/user/fundamental.itely +++ b/Documentation/fr/user/fundamental.itely @@ -704,7 +704,7 @@ pour soprano et violoncelle : dans ce cas l'on pourrait commencer par les @qq{notes et paroles}, pour la partie de soprano. @example -\version "2.11.38" +\version @w{"@version{}"} melodie = \relative c' @{ \clef treble \key c \major @@ -734,7 +734,7 @@ Maintenant, on veut ajouter une partie de violoncelle. Jetons un coup d'oeil sur l'exemple avec les notes seules : @example -\version "2.11.38" +\version @w{"@version{}"} melodie = \relative c' @{ \clef treble \key c \major @@ -772,7 +772,7 @@ Et puis, toujours tant qu'on y est, mettons le violoncelle en clé de Fa, comme le veut l'usage, et donnons-lui d'autres notes. @example -\version "2.11.38" +\version @w{"@version{}"} musiqueSoprano = \relative c' @{ \clef treble \key c \major diff --git a/Documentation/fr/user/lilypond-learning.tely b/Documentation/fr/user/lilypond-learning.tely index 2068b889a3..646db44a20 100644 --- a/Documentation/fr/user/lilypond-learning.tely +++ b/Documentation/fr/user/lilypond-learning.tely @@ -10,6 +10,8 @@ @documentencoding UTF-8 +@include macros.itexi + @iftex @afourpaper @c don't replace quotes with directed quotes @@ -85,25 +87,11 @@ Free Documentation License''. @vskip 20pt -@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 - +Pour LilyPond version @version{} @end titlepage @copying -Copyright @copyright{} 1999--2007 by the authors +Copyright @copyright{} 1999--2008 par les auteurs @emph{The translation of the following copyright notice is provided for courtesy to non-English speakers, but only the notice in English @@ -132,9 +120,25 @@ Free Documentation License''. @end copying @ifnottex -This file documents GNU LilyPond program usage. +Ce fichier documente GNU LilyPond. + +Copyright @copyright{} 1999--2008 par les auteurs + +@emph{The translation of the following copyright notice is provided +for courtesy to non-English speakers, but only the notice in English +legally counts.} + +@emph{La traduction de la notice de droits d'auteur ci-dessous vise à +faciliter sa compréhension par le lecteur non anglophone, mais seule la +notice en anglais a valeur légale.} -Copyright 1999--2007 by the authors +@quotation +Vous avez le droit de copier, distribuer et/ou modifier ce document +selon les termes de la Licence GNU de documentation libre, version 1.1 +ou tout autre version ultérieure publiée par la Free Software +Foundation, ``sans aucune section invariante''. +Une copie de la licence est fournie à la section ``Licence GNU de documentation libre''. +@end quotation @quotation Permission is granted to copy, distribute and/or modify this document @@ -151,10 +155,7 @@ Free Documentation License''. @top GNU LilyPond --- manuel d'initiation @c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX. -Ce document est le manuel d'initiation pour GNU LilyPond 2.11.x. -@ifhtml -(Allez au bas de la page pour voir le numéro de version exact). -@end ifhtml +Ce document est le manuel d'initiation pour GNU LilyPond @version{}. @cindex web site @cindex URL @@ -183,8 +184,6 @@ Annexes @contents -@include macros.itexi - @include preface.itely @include introduction.itely @include tutorial.itely diff --git a/Documentation/fr/user/lilypond-program.tely b/Documentation/fr/user/lilypond-program.tely index b88b8fccfa..1db7f1862c 100644 --- a/Documentation/fr/user/lilypond-program.tely +++ b/Documentation/fr/user/lilypond-program.tely @@ -10,6 +10,8 @@ @settitle GNU LilyPond -- utilisation du programme @documentencoding UTF-8 +@include macros.itexi + @iftex @afourpaper @c don't replace quotes with directed quotes @@ -52,11 +54,11 @@ Ce document est également disponible au format @titlepage @title GNU LilyPond @subtitle Le système de gravure musicale -@titlefont{Utilisation du programme} +@titlefont{Utilisation des programmes} @author L'équipe de développement de LilyPond -Copyright @copyright{} 1999--2007 by the authors +Copyright @copyright{} 1999--2008 par les auteurs @emph{The translation of the following copyright notice is provided for courtesy to non-English speakers, but only the notice in English @@ -85,28 +87,14 @@ Free Documentation License''. @vskip 20pt -@lilypond[ragged-right] -\score { - \context Lyrics { - \override Score.RehearsalMark #'self-alignment-X = #LEFT - \override Score.RehearsalMark #'font-size = #-2 - \mark #(ly:export (string-append - "(Pour LilyPond version " (lilypond-version) ")")) - s2 - } - \layout { - indent = 0.0\pt - } -} -@end lilypond - +Pour LilyPond version @version{} @end titlepage @ifnottex -Ce fichier documente l'utilisation du programme GNU LilyPond. +Ce fichier documente GNU LilyPond. -Copyright @copyright{} 1999--2007 par les auteurs +Copyright @copyright{} 1999--2008 par les auteurs @emph{The translation of the following copyright notice is provided for courtesy to non-English speakers, but only the notice in English @@ -137,13 +125,10 @@ Free Documentation License''. @ifnottex @node Top -@top GNU LilyPond --- utilisation du programme +@top GNU LilyPond --- utilisation des programmes @c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX. -Ce document est le manuel d'utilisation du programme pour GNU LilyPond 2.11.x. -@ifhtml -(Allez au bas de la page pour voir le numéro de version exact). -@end ifhtml +Ce document est le manuel d'utilisation des programmes pour GNU LilyPond @version{}. @cindex web site @cindex URL @@ -156,7 +141,7 @@ ligne de ce manuel, ainsi qu'une documentation supplémentaire. @menu * Install:: installation, compilation. -* Setup:: utilisation de LilyPond avec d'autres programmes. +* Setup:: environnement de travail pour LilyPond. * Running LilyPond:: mode d'emploi. * LilyPond-book:: intégration de texte et musique. * Converting from other formats:: conversion vers le format source lilypond. @@ -171,8 +156,6 @@ Annexes @contents -@include macros.itexi - @include install.itely @include setup.itely @include running.itely diff --git a/Documentation/fr/user/lilypond.tely b/Documentation/fr/user/lilypond.tely index 7fba0e33a0..98a082aedc 100644 --- a/Documentation/fr/user/lilypond.tely +++ b/Documentation/fr/user/lilypond.tely @@ -10,6 +10,8 @@ @settitle GNU LilyPond -- manuel de notation @documentencoding UTF-8 +@include macros.itexi + @iftex @afourpaper @c don't replace quotes with directed quotes @@ -19,7 +21,8 @@ @end tex @end iftex -@c @direntry has not been added yet, as Emacs and standalone Info have no i18n support -JM +@c @direntry has not been added yet, as Emacs and standalone Info have +@c no i18n support -JM @c don't remove this comment. @ignore @@ -54,11 +57,11 @@ Ce document est également disponible au format @titlepage @title GNU LilyPond @subtitle Le système de gravure musicale -@titlefont{Manuel de référence} +@titlefont{Manuel de notation} @author L'équipe de développement de LilyPond -Copyright @copyright{} 1999--2007 by the authors +Copyright @copyright{} 1999--2008 par les auteurs @emph{The translation of the following copyright notice is provided for courtesy to non-English speakers, but only the notice in English @@ -87,28 +90,14 @@ Free Documentation License''. @vskip 20pt -@lilypond[ragged-right] -\score { - \context Lyrics { - \override Score.RehearsalMark #'self-alignment-X = #LEFT - \override Score.RehearsalMark #'font-size = #-2 - \mark #(ly:export (string-append - "(Pour LilyPond version " (lilypond-version) ")")) - s2 - } - \layout { - indent = 0.0\pt - } -} -@end lilypond - +Pour LilyPond version @version{} @end titlepage @ifnottex Ce fichier documente GNU LilyPond. -Copyright @copyright{} 1999--2007 par les auteurs +Copyright @copyright{} 1999--2008 par les auteurs @emph{The translation of the following copyright notice is provided for courtesy to non-English speakers, but only the notice in English @@ -142,10 +131,7 @@ Free Documentation License''. @top GNU LilyPond --- le système de gravure musicale @c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX. -Ce document est le manuel de référence de GNU LilyPond 2.11.x. -@ifhtml -(Allez au bas de la page pour voir le numéro de version exact). -@end ifhtml +Ce document est le manuel de notation de GNU LilyPond @version{}. @cindex web site @cindex URL @@ -180,8 +166,6 @@ Annexes @contents -@include macros.itexi - @include notation.itely @include specialist.itely diff --git a/Documentation/fr/user/macros.itexi b/Documentation/fr/user/macros.itexi index 52c0c0d894..9fd2bcce9c 100644 --- a/Documentation/fr/user/macros.itexi +++ b/Documentation/fr/user/macros.itexi @@ -6,6 +6,10 @@ version that you are working on. See TRANSLATION for details. @end ignore +@macro version +@value{version} +@end macro + @c ***** Displaying text ***** @@ -173,6 +177,7 @@ @c WARNING: new @lsr macro in English docs takes 3 arguments @c and new @lsrdir takes two arguments +@c obsolete @c usage: @lsr{ancient,custodes.ly} @macro lsr{DIR,TEXT} @ifhtml @@ -183,6 +188,7 @@ @end ifnothtml @end macro +@c don't update until this macro is correctly set up in English docs @macro lsrdir{DIR} @ifhtml @uref{source/input/lsr/\DIR\/collated-files.html,@file{\DIR\}/} @@ -205,14 +211,6 @@ @ifhtml @c ***** HTML ***** -@c makeinfo-4.7 encodes html names, which means that nodes that -@c contain nonalphanum characters will be broken links on the website. -@c @uref{../lilypond-internals/\TEXT\.html,\TEXT\}@c -@c @inforef{} adds ``See'' to the sentence, which is annoying, but -@c better than a broken link. -@c @inforef{\TEXT\,,lilypond-internals}@c -@c using @ref without punctuation is OK without for formats other than info - @ifset bigpage @macro internalsref{TEXT} diff --git a/Documentation/fr/user/tutorial.itely b/Documentation/fr/user/tutorial.itely index e1644f0d08..4d7bfa6134 100644 --- a/Documentation/fr/user/tutorial.itely +++ b/Documentation/fr/user/tutorial.itely @@ -1377,7 +1377,7 @@ La déclaration @code{\version} stipule le numéro de la version de LilyPond pour laquelle le fichier a été écrit, @example -\version "2.11.38" +\version @w{"@version{}"} @end example @noindent diff --git a/Documentation/fr/user/working.itely b/Documentation/fr/user/working.itely index ae0b394095..d96c0985b0 100644 --- a/Documentation/fr/user/working.itely +++ b/Documentation/fr/user/working.itely @@ -70,13 +70,13 @@ faciliter leur mise à jour. Voici quelques conseils qui peuvent vous éviter certains problèmes ou en résoudre d'autres. -@itemize @bullet +@itemize @item @strong{Ajoutez le numéro de version dans chaque fichier}. Notez que chaque fichier modèle contient une ligne @code{\version "2.11.32"}. Nous vous conseillons fortement d'inclure cette ligne, même pour de petits fichiers. Par expérience, il est très difficile de se rappeler quelle version de LilyPond on utilisait quelques -années auparavant. L'utilitaire @code{convert-ly} demande que vous +années auparavant. L'utilitaire @command{convert-ly} demande que vous spécifiiez la version de LilyPond vous utilisiez alors. @item @strong{Ajoutez des contrôles}: @ruser{Bar check}, @ruser{Octave @@ -542,7 +542,7 @@ chaque fichier de musique par @code{\include "../global.ly"} qui contient : @example %%% global.ly -\version "2.11.38" +\version @w{"@version{}"} #(ly:set-option 'point-and-click #f) \include "../init/init-defs.ly" \include "../init/init-mise-en-page.ly" @@ -560,14 +560,14 @@ plus faciles à lire et à écrire, ou permettent d'intégrer de nouvelles fonctionnalités. LilyPond est fourni avec un utilitaire qui facilite cette mise à -jour : @code{convert-ly}. Pour savoir comment utiliser ce programme, +jour : @command{convert-ly}. Pour savoir comment utiliser ce programme, voir @rprogram{Updating files with convert-ly}. -Malheureusement, @code{convert-ly} ne peut pas réaliser toutes les +Malheureusement, @command{convert-ly} ne peut pas réaliser toutes les modifications. Il s'occupe des changements qui ne requièrent qu'une simple substitution de texte --- comme @code{raggedright} devenant @code{ragged-right} ---, les autres étant trop compliqués à effectuer. -Les changements de syntaxe qui ne sont pas gérés par @code{convert-ly} +Les changements de syntaxe qui ne sont pas gérés par @command{convert-ly} sont énumérés dans @rprogram{Updating files with convert-ly}. Par exemple, dans les versions 2.4 et antérieures de LilyPond, diff --git a/Documentation/index.html.in b/Documentation/index.html.in index adc9705778..82f04b82b9 100644 --- a/Documentation/index.html.in +++ b/Documentation/index.html.in @@ -101,9 +101,9 @@ href="user/lilypond-program/index.html">Application Usage (AU) in PDF)
(how to install and run the program) -
  • Snippets -(in one big page, -in PDF) +
  • Snippets +(in one big page, +in PDF)
    (Short tricks, tips, and examples) diff --git a/Documentation/topdocs/GNUmakefile b/Documentation/topdocs/GNUmakefile index 548636fdf5..7e2d2641d9 100644 --- a/Documentation/topdocs/GNUmakefile +++ b/Documentation/topdocs/GNUmakefile @@ -5,14 +5,12 @@ STEPMAKE_TEMPLATES=documentation tex texinfo topdocs LOCALSTEPMAKE_TEMPLATES=lilypond ly HTML_FILES=$(TEXI_FILES:%.texi=$(outdir)/%.html) $(TELY_FILES:%.tely=$(outdir)/%.html) PDF_FILES=$(outdir)/NEWS.pdf +README_TOP_FILES=NEWS AUTHORS INSTALL README +OUTTXT_FILES= $(outdir)/NEWS.txt + include $(depth)/make/stepmake.make MAKEINFO_FLAGS += -I $(top-src-dir)/Documentation/user -ifneq ($(out),www) -LILYPOND_BINARY='true' -endif - -$(outdir)/NEWS.nexi: NEWS.tely - +.SECONDARY: diff --git a/Documentation/translations.html.in b/Documentation/translations.html.in new file mode 100644 index 0000000000..f85c4e553c --- /dev/null +++ b/Documentation/translations.html.in @@ -0,0 +1,702 @@ + + + + + LilyPond documentation translations status + + + + +

    Up to documentation index

    + +

    Documentation translations status

    + +

    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. +

    + +

    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. +

    + +

    Last updated Tue Feb 26 15:43:29 UTC 2008 +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    GNU LilyPond --- learning manual frdees
    Section titles
    (406)
    John Mandereau
    + Jean-Charles Malahieude
    + translated
    + up to date
    +
    Till Rettig
    + translated
    + up to date
    +
    Francisco Vila
    + translated
    + partially up-to-date (93 %)
    +
    Preface
    (411)
    Valentin Villenave
    + Ludovic Sardain
    + translated
    + up to date
    +
    Till Rettig
    + translated
    + up to date
    +
    Francisco Vila
    + translated
    + up to date
    +
    1 Introduction
    (3198)
    Ludovic Sardain
    + John Mandereau
    + Jean-Charles Malahieude
    + Jean-Yves Baudais

    + translated
    + partially up-to-date (96 %)
    +
    Till Rettig
    + translated
    + partially up-to-date (96 %)
    +
    Francisco Vila
    + translated
    +
    +
    2 Tutorial
    (5593)
    Nicolas Grandclaude
    + Ludovic Sardain
    + Gauvain Pocentek
    + Jean-Charles Malahieude
    + Valentin Villenave
    + John Mandereau

    + translated
    + partially up-to-date (23 %)
    +
    Till Rettig
    + translated
    + partially up-to-date (95 %)
    +
    Francisco Vila
    + translated
    + up to date
    +
    3 Fundamental concepts
    (8626)
    Valentin Villenave
    + Jean-Charles Malahieude
    + John Mandereau

    + partially translated (39 %)
    + partially up-to-date (80 %)
    +
    not translated
    +
    not translated
    +
    4 Tweaking output
    (11862)
    Valentin Villenave
    + Nicolas Klutchnikoff
    + Jean-Charles Malahieude
    + John Mandereau

    + partially translated (16 %)
    + partially up-to-date (9 %)
    +
    Till Rettig
    + partially translated (16 %)
    + partially up-to-date (9 %)
    +
    Francisco Vila
    + partially translated (16 %)
    +
    +
    5 Working on LilyPond projects
    (2985)
    Ludovic Sardain
    + Jean-Yves Baudais
    + Valentin Villenave
    + John Mandereau
    + Jean-Charles Malahieude

    + partially translated (79 %)
    + partially up-to-date (86 %)
    +
    Till Rettig
    + partially translated (79 %)
    + partially up-to-date (86 %)
    +
    Francisco Vila
    + partially translated (79 %)
    + up to date
    +
    A Templates
    (297)
    not translated
    +
    Till Rettig
    + translated
    + partially up-to-date (24 %)
    +
    Francisco Vila
    + translated
    +
    +
    B Scheme tutorial
    (960)
    not translated
    +
    Till Rettig
    + partially translated (91 %)
    + partially up-to-date (85 %)
    +
    not translated
    +
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    GNU LilyPond --- program usage frdees
    Section titles
    (384)
    John Mandereau
    + Jean-Charles Malahieude
    + translated
    + up to date
    +
    Till Rettig
    + translated
    + up to date
    +
    Francisco Vila
    + translated
    + partially up-to-date (93 %)
    +
    1 Install
    (1477)
    John Mandereau
    + Jean-Charles Malahieude
    + partially translated (11 %)
    + partially up-to-date (96 %)
    +
    not translated
    +
    Francisco Vila
    + partially translated (11 %)
    + partially up-to-date (88 %)
    +
    2 Setup
    (947)
    not translated
    +
    Till Rettig
    + translated
    + partially up-to-date (96 %)
    +
    Francisco Vila
    + translated
    +
    +
    3 Running LilyPond
    (2860)
    not translated
    +
    not translated
    +
    not translated
    +
    4 @command{lilypond-book}: Integrating text and music
    (2840)
    not translated
    +
    not translated
    +
    not translated
    +
    5 Converting from other formats
    (975)
    Jean-Charles Malahieude
    + translated
    + up to date
    +
    not translated
    +
    not translated
    +
    +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    GNU LilyPond --- The music typesetter frdees
    Section titles
    (549)
    John Mandereau
    + Jean-Charles Malahieude
    + translated
    + partially up-to-date (86 %)
    +
    Till Rettig
    + translated
    + partially up-to-date (86 %)
    +
    Francisco Vila
    + translated
    + partially up-to-date (96 %)
    +
    1 Musical notation
    (91)
    John Mandereau
    + Jean-Charles Malahieude
    + translated
    + up to date
    +
    Till Rettig
    + translated
    + partially up-to-date (79 %)
    +
    Francisco Vila
    + translated
    + partially up-to-date (79 %)
    +
    1.1 Pitches
    (2808)
    Frédéric Chiasson
    + Valentin Villenave
    + Jean-Charles Malahieude

    + translated
    + partially up-to-date (13 %)
    +
    Till Rettig
    + translated
    + partially up-to-date (13 %)
    +
    Francisco Vila
    + translated
    + up to date
    +
    1.2 Rhythms
    (7056)
    Frédéric Chiasson
    + Valentin Villenave
    + Jean-Charles Malahieude

    + translated
    + partially up-to-date (29 %)
    +
    Till Rettig
    + partially translated (82 %)
    + partially up-to-date (29 %)
    +
    Francisco Vila
    + partially translated (87 %)
    + up to date
    +
    1.3 Expressive marks
    (1602)
    Valentin Villenave
    + Jean-Charles Malahieude
    + John Mandereau

    + translated
    + partially up-to-date (29 %)
    +
    Till Rettig
    + translated
    + partially up-to-date (29 %)
    +
    Francisco Vila
    + translated
    + partially up-to-date (83 %)
    +
    1.4 Repeats
    (717)
    Valentin Villenave
    + Jean-Charles Malahieude
    + John Mandereau

    + translated
    + partially up-to-date (39 %)
    +
    Till Rettig
    + translated
    + partially up-to-date (39 %)
    +
    Francisco Vila
    + translated
    + up to date
    +
    1.5 Simultaneous notes
    (916)
    Frédéric Chiasson
    + Valentin Villenave
    + Jean-Charles Malahieude
    + John Mandereau

    + translated
    + partially up-to-date (39 %)
    +
    Till Rettig
    + partially translated (58 %)
    + partially up-to-date (39 %)
    +
    Francisco Vila
    + partially translated (58 %)
    + up to date
    +
    1.6 Staff notation
    (1637)
    Valentin Villenave
    + Jean-Charles Malahieude
    + John Mandereau
    + translated
    + partially up-to-date (41 %)
    +
    Till Rettig
    + partially translated (49 %)
    + partially up-to-date (41 %)
    +
    Francisco Vila
    + translated
    + up to date
    +
    1.7 Editorial annotations
    (866)
    Jean-Charles Malahieude
    + translated
    + partially up-to-date (9 %)
    +
    Till Rettig
    + partially translated (38 %)
    + partially up-to-date (9 %)
    +
    Francisco Vila
    + partially translated (95 %)
    + up to date
    +
    1.8 Text
    (2329)
    Jean-Charles Malahieude
    + Valentin Villenave
    + John Mandereau

    + translated
    + partially up-to-date (39 %)
    +
    not translated
    +
    Francisco Vila
    + translated
    + up to date
    +
    2 Specialist notation
    (54)
    John Mandereau
    + Jean-Charles Malahieude
    + translated
    + up to date
    +
    Till Rettig
    + translated
    + partially up-to-date (68 %)
    +
    Francisco Vila
    + translated
    + partially up-to-date (68 %)
    +
    2.1 Vocal music
    (2630)
    Valentin Villenave
    + Jean-Charles Malahieude
    + partially translated (89 %)
    + partially up-to-date (89 %)
    +
    not translated
    +
    Francisco Vila
    + partially translated (89 %)
    + up to date
    +
    2.2 Chords
    (1275)
    Valentin Villenave
    + Jean-Charles Malahieude
    + John Mandereau

    + partially translated (56 %)
    + partially up-to-date (87 %)
    +
    Till Rettig
    + partially translated (56 %)
    + partially up-to-date (87 %)
    +
    Francisco Vila
    + partially translated (56 %)
    + up to date
    +
    2.3 Piano music
    (702)
    Valentin Villenave
    + Jean-Charles Malahieude
    + John Mandereau

    + translated
    + partially up-to-date (89 %)
    +
    Till Rettig
    + translated
    + partially up-to-date (89 %)
    +
    Francisco Vila
    + translated
    + up to date
    +
    2.4 Percussion
    (481)
    Valentin Villenave
    + Jean-Charles Malahieude
    + John Mandereau

    + translated
    + partially up-to-date (92 %)
    +
    Till Rettig
    + translated
    + partially up-to-date (92 %)
    +
    Francisco Vila
    + translated
    + up to date
    +
    2.5 Guitar
    (826)
    Valentin Villenave
    + Jean-Charles Malahieude
    + John Mandereau

    + translated
    + partially up-to-date (91 %)
    +
    Till Rettig
    + translated
    + partially up-to-date (91 %)
    +
    Francisco Vila
    + translated
    + up to date
    +
    2.6 Orchestral strings
    (66)
    Valentin Villenave
    + Jean-Charles Malahieude
    + John Mandereau

    + translated
    + partially up-to-date (61 %)
    +
    Till Rettig
    + translated
    + partially up-to-date (61 %)
    +
    Francisco Vila
    + translated
    + partially up-to-date (61 %)
    +
    2.7 Bagpipes
    (242)
    Valentin Villenave
    + Jean-Charles Malahieude
    + John Mandereau

    + translated
    + partially up-to-date (80 %)
    +
    Till Rettig
    + partially translated (94 %)
    + partially up-to-date (80 %)
    +
    Francisco Vila
    + translated
    + partially up-to-date (80 %)
    +
    2.8 Ancient notation
    (4289)
    Valentin Villenave
    + Jean-Charles Malahieude
    + John Mandereau

    + partially translated (88 %)
    + partially up-to-date (94 %)
    +
    Till Rettig
    + partially translated (88 %)
    + partially up-to-date (94 %)
    +
    Francisco Vila
    + partially translated (88 %)
    + up to date
    +
    3 Input syntax
    (2448)
    Jean-Charles Malahieude
    + partially translated (7 %)
    + partially up-to-date (99 %)
    +
    not translated
    +
    not translated
    +
    4 Non-musical notation
    (2164)
    Valentin Villenave
    + Jean-Charles Malahieude
    + partially translated (4 %)
    + up to date
    +
    not translated
    +
    Francisco Vila
    + partially translated (3 %)
    + up to date
    +
    5 Spacing issues
    (8399)
    not translated
    +
    not translated
    +
    not translated
    +
    6 Changing defaults
    (5105)
    Valentin Villenave
    + Gilles Thibault
    + translated
    + partially up-to-date (77 %)
    +
    not translated
    +
    Francisco Vila
    + translated
    + up to date
    +
    7 Interfaces for programmers
    (4547)
    not translated
    +
    not translated
    +
    not translated
    +
    A Literature list
    (299)
    not translated
    +
    Till Rettig
    + translated
    + up to date
    +
    Francisco Vila
    + translated
    + up to date
    +
    B Notation manual tables
    (935)
    Frédéric Chiasson
    + Jean-Charles Malahieude
    + partially translated (13 %)
    + partially up-to-date (93 %)
    +
    Till Rettig
    + partially translated (84 %)
    + partially up-to-date (90 %)
    +
    Francisco Vila
    + partially translated (97 %)
    +
    +
    C Cheat sheet
    (250)
    Valentin Villenave
    + translated
    + up to date
    +
    Till Rettig
    + translated
    + up to date
    +
    Francisco Vila
    + translated
    +
    +
    +

    + + + diff --git a/Documentation/translations.template.html b/Documentation/translations.template.html deleted file mode 100644 index e0bbadc092..0000000000 --- a/Documentation/translations.template.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - LilyPond documentation translations status - - - - -

    Up to documentation index

    - -

    Documentation translations status

    - -

    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. -

    - -

    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. -

    - - - diff --git a/Documentation/translations.template.html.in b/Documentation/translations.template.html.in new file mode 100644 index 0000000000..e0bbadc092 --- /dev/null +++ b/Documentation/translations.template.html.in @@ -0,0 +1,40 @@ + + + + LilyPond documentation translations status + + + + +

    Up to documentation index

    + +

    Documentation translations status

    + +

    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. +

    + +

    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. +

    + + + diff --git a/Documentation/user/GNUmakefile b/Documentation/user/GNUmakefile index f94800161c..4ba6660a17 100644 --- a/Documentation/user/GNUmakefile +++ b/Documentation/user/GNUmakefile @@ -24,11 +24,13 @@ PDF_FILES = $(TELY_FILES:%.tely=$(outdir)/%.pdf) # this prevents aux files from being reused for translated docs TEXI2PDF_FLAGS = --tidy +MAIN_INFO_DOC = lilypond INFO_DOCS = lilypond lilypond-internals music-glossary lilypond-program lilypond-learning INFO_FILES = $(INFO_DOCS:%=$(outdir)/%.info) ifeq ($(out),www) INFO_IMAGES_DIR = lilypond +DEST_INFO_IMAGES_SUBDIR = Documentation/user endif STEPMAKE_TEMPLATES=tex texinfo omf documentation @@ -36,10 +38,6 @@ OMF_FILES += $(outdir)/lilypond-internals.html.omf LOCALSTEPMAKE_TEMPLATES=lilypond ly - -TEXINPUTS=$(top-src-dir)/tex:: -export TEXINPUTS - include $(depth)/make/stepmake.make info: $(INFO_FILES) @@ -48,80 +46,6 @@ info: $(INFO_FILES) xml: $(outdir)/lilypond/lilypond.xml $(outdir)/lilypond-internals/lilypond-internals.xml -# There are two modes for info: with and without images. -ifeq ($(out),www) - -# This builds all .info targets with images, in out-www. -# Viewable with a recent Emacs, doing: C-u C-h i out-www/lilypond.info - -local-install-info: info - -$(INSTALL) -d $(DESTDIR)$(infodir) -ifneq ($(patsubst %/local,%,$(DESTDIR)$(prefix)),/usr) -## Can not have absolute symlinks because some binary packages build schemes -## install files in nonstandard root. Best we can do is to notify the -## builder or packager. - @echo - @echo "***************************************************************" - @echo "Please add or update the LilyPond direntries, do" - @echo - @echo " install-info --info-dir=$(infodir) $(outdir)/lilypond.info" - @echo - @echo "For images in the INFO docs to work, do: " - @echo - @echo " (cd $(infodir) && ln -sfT ../doc/lilypond/html/Documentation/user lilypond)" - @echo "or add something like that to the postinstall script." - @echo -else # installing directly into standard /usr/... - -$(INSTALL) -d $(DESTDIR)$(infodir) - -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond.info - -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-program.info - -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-learning.info - -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-internals.info - -install-info --remove --info-dir=$(infodir) $(outdir)/music-glossary.info - install-info --info-dir=$(infodir) $(outdir)/lilypond.info - cd $(infodir) && ln -sfT $(webdir)/Documentation/user lilypond -endif # installing directly into standard /usr/... - -local-uninstall-WWW: - rm -f $(infodir)/lilypond - -else # out!=www - -local-install-info: info - -$(INSTALL) -d $(DESTDIR)$(package_infodir) -ifneq ($(patsubst %/local,%,$(DESTDIR)$(prefix)),/usr) -## Can not have absolute symlinks because some binary packages build schemes -## install files in nonstandard root. Best we can do is to notify the -## builder or packager. - @echo - @echo "***************************************************************" - @echo "Please add or update the LilyPond direntries, do" - @echo - @echo " install-info --info-dir=$(infodir) out/lilypond.info" - @echo - @echo "For images in the INFO docs to work, do" - @echo - @echo " make out=www install-info " - @echo - @echo "and read the extra instructions." - @echo -else # installing directly into standard /usr/... - -$(INSTALL) -d $(DESTDIR)$(infodir) - -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond.info - -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-program.info - -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-learning.info - -install-info --remove --info-dir=$(infodir) $(outdir)/lilypond-internals.info - -install-info --remove --info-dir=$(infodir) $(outdir)/music-glossary.info - install-info --info-dir=$(infodir) $(outdir)/lilypond.info - @echo - @echo "***************************************************************" - @echo "For images in the INFO docs to work, do" - @echo - @echo " make out=www install-info " - @echo -endif # installing into standard /usr/* root# installing into /usr/... - -endif # out!=www # All web targets, except info image symlinks and info docs are # installed in non-recursing target from TOP-SRC-DIR @@ -145,7 +69,6 @@ extra-local-help: # Generic rule using % twice not possible? # $(outdir)/%/%.html: $(outdir)/%.texi $(outdir)/lilypond.texi: $(outdir)/lilypond-internals.texi -$(outdir)/lilypond.nexi: $(outdir)/lilypond-internals.texi # # Split manuals in HTML @@ -191,7 +114,8 @@ DEEP_HTML_FILES =\ $(outdir)/lilypond-learning/index.html # Symlinks to refer to external source documents from split and non-split HTML -source-links = $(outdir)/source $(outdir)/lilypond/source $(outdir)/music-glossary/source $(outdir)/lilypond-program/source $(outdir)/lilypond-learning/source +source-links = $(outdir)/source $(outdir)/lilypond/source $(outdir)/music-glossary/source \ + $(outdir)/lilypond-program/source $(outdir)/lilypond-learning/source $(outdir)/source: @rm -f $(@) @@ -214,7 +138,6 @@ $(top-build-dir)/mf/$(outconfbase)/feta16list.ly: $(MAKE) -C $(top-src-dir)/mf $(outdir)/lilypond.texi $(outdir)/lilypond-program.texi $(outdir)/lilypond-learning.texi $(outdir)/music-glossary.texi: $(ITELY_FILES) $(ITEXI_FILES) -$(outdir)/lilypond.nexi $(outdir)/lilypond-program.nexi $(outdir)/lilypond-learning.nexi $(outdir)/music-glossary.nexi: $(ITELY_FILES) $(ITEXI_FILES) # Rules for the automatically generated documentation @@ -223,10 +146,8 @@ $(outdir)/lilypond.nexi $(outdir)/lilypond-program.nexi $(outdir)/lilypond-learn # of lilypond-internals every time. however, this triggers # compilation during install, which is a bad thing (tm). -$(outdir)/lilypond-internals.nexi $(outdir)/lilypond-internals.texi: $(LILYPOND_BINARY) +$(outdir)/lilypond-internals.texi: $(LILYPOND_BINARY) cd $(outdir) && $(LILYPOND_BINARY) --verbose $(top-src-dir)/ly/generate-documentation - rm -f $(outdir)/lilypond-internals.nexi - -ln $(outdir)/lilypond-internals.texi $(outdir)/lilypond-internals.nexi ## unused diff --git a/Documentation/user/README.txt b/Documentation/user/README.txt index 6b39a974a3..ae345e03d0 100644 --- a/Documentation/user/README.txt +++ b/Documentation/user/README.txt @@ -11,7 +11,7 @@ General policy: policy.txt convert-ly -e --from=... --to=... --no-version *.itely % to find the current version number, -grep "version \"" tutorial.itely +grep "version \"" fundamental.itely Please don't forget updating translated docs (in LANGS/user) too! diff --git a/Documentation/user/editorial.itely b/Documentation/user/editorial.itely index 99f32bff59..c13a4fbac0 100644 --- a/Documentation/user/editorial.itely +++ b/Documentation/user/editorial.itely @@ -9,8 +9,10 @@ @node Editorial annotations @section Editorial annotations -@lilypondfile[ragged-right,line-width=16\cm,staffsize=16,quote] -{editorial-headword.ly} +@lilypondfile[quote]{editorial-headword.ly} + +This section discusses the various ways to change the appearance of +notes and add analysis or educational emphasis. @menu * Inside the staff:: @@ -21,6 +23,8 @@ @node Inside the staff @subsection Inside the staff +This section discusses how to add emphasis to elements that are +inside the staff. @menu * Selecting notation font size:: @@ -112,6 +116,9 @@ Internals Reference: @internalsref{font-interface}. Fingering instructions can be entered using @var{note}-@var{digit}: +Fingering instructions may be manually placed above or below the +staff, see @ref{Controlling direction and placement}. + @lilypond[quote,verbatim,ragged-right,fragment,relative=2] c4-1 d-2 f-4 e-3 @end lilypond @@ -237,43 +244,44 @@ If @code{x11-color} cannot make sense of the parameter then the color returned defaults to black. @lilypond[quote,ragged-right,verbatim,fragment,relative=2] + \override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2) \set Staff.instrumentName = \markup { \with-color #(x11-color 'navy) "Clarinet" } -gis4 a + +gis8 a \override Beam #'color = #(x11-color "medium turquoise") gis a \override Accidental #'color = #(x11-color 'DarkRed) gis a \override NoteHead #'color = #(x11-color "LimeGreen") gis a - % this is deliberate nonsense; note that the stems remain black \override Stem #'color = #(x11-color 'Boggle) b2 cis + @end lilypond You can get exact RGB colors by specifying the rgb-color number. @lilypond[quote,ragged-right,verbatim,fragment,relative=2] -{ + \override Staff.StaffSymbol #'color = #(x11-color 'SlateBlue2) \set Staff.instrumentName = \markup { \with-color #(x11-color 'navy) "Clarinet" } - \time 4/4 - + %black \override Stem #'color = #(rgb-color 0 0 0) - c4 + gis8 a % white \override Stem #'color = #(rgb-color 1 1 1) - d + gis8 a % dark blue \override Stem #'color = #(rgb-color 0 0 0.5) - e -} + gis4 a + @end lilypond @seealso @@ -293,8 +301,7 @@ web use normal colors are recommended (i.e. #blue, #green, #red). Notes in a chord cannot be colored with @code{\override}; use -@code{\tweak} instead. See @ref{Objects connected to the input}, -for details. +@code{\tweak} instead, see @ref{Objects connected to the input}. @node Parentheses @@ -306,33 +313,18 @@ for details. @cindex parentheses Objects may be parenthesized by prefixing @code{\parenthesize} to -the music event, +the music event. This only functions inside chords; to +parenthesize a single note it must be enclosed with @code{<>} as +if it is a chord. @lilypond[relative=2,fragment,verbatim,ragged-right] -< - c - \parenthesize d - g ->2-\parenthesize -. -d g -< - c, - \parenthesize fis -> +c2 < \parenthesize d> @end lilypond -This only functions inside chords, to parenthesize a single note it -must be enclosed with @code{<>} as if it is a chord. - -@example -< \parenthesize NOTE> -@end example +Non-note objects may be parenthesized as well. @lilypond[relative=2,fragment,verbatim,ragged-right] -c4 -<\parenthesize d> -g -<\parenthesize d> +< c d g >2-\parenthesize -. d @end lilypond @seealso @@ -384,6 +376,8 @@ Snippets: @lsrdir{Editorial,Editorial-annotations}. @node Outside the staff @subsection Outside the staff +This section discusses how to add emphasis to elements in the staff +from outside of the staff. @menu * Balloon help:: @@ -405,10 +399,11 @@ The following example demonstrates its use. { \time 2/4 \balloonGrobText #'Stem #'(3 . 4) \markup { "I'm a Stem" } - a'8 - 4. + a8 + 4. } + @end lilypond There are two music functions, @code{balloonGrobText} and @@ -436,15 +431,55 @@ notes. \layout { \context { \Staff - \consists "Grid_point_engraver" %% sets of grid + \consists "Grid_point_engraver" + % sets up grids gridInterval = #(ly:make-moment 1 4) + % this sets the grid interval to 1 quarternote (crotchet) + } +} + +\new Score \with { + \consists "Grid_line_span_engraver" + %% by default this centers grid lines horizontally below and to the + % left side of the notehead, the grid lines extend from + % the middle lines of each staff +} + +\new ChoirStaff << + \new Staff { + \stemUp + \relative { + c'4. d8 e8 f g4 + } + } + \new Staff { + \stemDown + \clef bass + \relative c { + c4 g' f e + } + } +>> +@end lilypond + +To change the grid lines use \override. + + +@lilypond[ragged-right,quote,verbatim] +\layout { + \context { + \Staff + \consists "Grid_point_engraver" + % sets up grids + gridInterval = #(ly:make-moment 1 4) + % this sets the grid interval to 1 quarternote (crotchet) } } \new Score \with { \consists "Grid_line_span_engraver" - %% centers grid lines horizontally below note heads \override NoteColumn #'X-offset = #-0.5 + % this moves them to the right half a staff space } \new ChoirStaff << @@ -455,8 +490,8 @@ notes. } } \new Staff { - %% centers grid lines vertically \override Score.GridLine #'extra-offset = #'( 0.0 . 1.0 ) + % this moves them up one staff space from the default position \stemDown \clef bass \relative c { diff --git a/Documentation/user/expressive.itely b/Documentation/user/expressive.itely index c1c1771828..ae6e241a23 100644 --- a/Documentation/user/expressive.itely +++ b/Documentation/user/expressive.itely @@ -9,8 +9,7 @@ @node Expressive marks @section Expressive marks -@lilypondfile[quote,ragged-right,line-width=16\cm,staffsize=16] -{expressive-headword.ly} +@lilypondfile[quote]{expressive-headword.ly} @menu * Attached to notes:: diff --git a/Documentation/user/fundamental.itely b/Documentation/user/fundamental.itely index 1e56b0e4f2..f9f9343f5f 100644 --- a/Documentation/user/fundamental.itely +++ b/Documentation/user/fundamental.itely @@ -40,7 +40,7 @@ description of the input format, see @ruser{File structure}. A basic example of a lilypond input file is @example -\version "2.11.38" +\version @w{"@version{}"} \score @{ @var{...compound music expression...} % all the music goes here! \header @{ @} @@ -1589,7 +1589,7 @@ engraver is removed from a context it can no longer produce its output. This is a crude way of modifying the output, but it can sometimes be useful. -@subsubsection Changing a single context +@subsubheading Changing a single context To remove an engraver from a single context we use the @code{\with} command placed immediately after the context creation @@ -1670,7 +1670,7 @@ the notes in all the voices on that staff: >> @end lilypond -@subsubsection Changing all contexts of the same type +@subsubheading Changing all contexts of the same type The examples above show how to remove or add engravers to individual contexts. It is also possible to remove or add @@ -1739,7 +1739,7 @@ cello. In this case, we would start with @q{Notes and lyrics} (for the soprano part). @example -\version "2.11.38" +\version @w{"@version{}"} melody = \relative c' @{ \clef treble \key c \major @@ -1767,7 +1767,7 @@ text = \lyricmode @{ Now we want to add a cello part. Let's look at the @q{Notes only} example: @example -\version "2.11.38" +\version @w{"@version{}"} melody = \relative c' @{ \clef treble \key c \major @@ -1804,7 +1804,7 @@ celli normally use bass clef. We'll also give the cello some different notes. @example -\version "2.11.38" +\version @w{"@version{}"} sopranoMusic = \relative c' @{ \clef treble \key c \major @@ -1873,7 +1873,7 @@ This looks a bit messy; the indentation is messed up now. That is easily fixed. Here's the complete soprano and cello template. @lilypond[quote,verbatim,ragged-right] -\version "2.11.37" +\version "2.11.38" sopranoMusic = \relative c' { \clef treble \key c \major @@ -1921,7 +1921,6 @@ from Handel's Messiah: @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" @@ -2193,7 +2192,7 @@ music definitions and one to define the time signature and key: @example -\version "2.11.38" +\version @w{"@version{}"} \header @{ title = "Jesu, meine Freude" composer = "J S Bach" diff --git a/Documentation/user/input.itely b/Documentation/user/input.itely index 5f2b84131a..9ad929c4af 100644 --- a/Documentation/user/input.itely +++ b/Documentation/user/input.itely @@ -16,6 +16,12 @@ rather than specific notation. FIXME: don't complain about anything in this chapter. It's still under heavy development. +FIXME: add comments +@verbatim +% %{ +@end verbatim +to 3.1. + @menu * Input files:: * Common syntax issues TODO name?:: @@ -542,6 +548,11 @@ Also mention \override Foo #'direction = #'DOWN. also mention the typical \fooDown, \fooNeutral predefined commands. +also mention that some directions are (without other tweaking) +always up or always down (like dynamics or fermata), while other +things can alternate between up or down based on the stem direction +(like slurs or accents). + @node Distances and measurements MAYBE MOVE @subsection Distances and measurements MAYBE MOVE diff --git a/Documentation/user/lilypond-book.itely b/Documentation/user/lilypond-book.itely index 86b274f9cf..cb796ef2af 100644 --- a/Documentation/user/lilypond-book.itely +++ b/Documentation/user/lilypond-book.itely @@ -105,9 +105,10 @@ directory as this file.) 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) 2.11.37} +@emph{lilypond-book (GNU LilyPond) @version{} } @emph{Reading lilybook.lytex...} @emph{..lots of stuff deleted..} @emph{Compiling lilybook.tex...} @@ -655,6 +656,10 @@ will be printed with a verbatim block like f2 e @end example +@item addversion +(Only for Texinfo output.) Prepend line @code{\version +@@w@{"@@version@{@}"@}} to @code{verbatim} output. + @item texidoc (Only for Texinfo output.) If @command{lilypond} is called with the @option{--header=@/texidoc} option, and the file to be processed is @@ -699,8 +704,9 @@ useful if you want to @code{quote} the music snippet but not the @item printfilename If a LilyPond input file is included with @code{\lilypondfile}, print -the file name right before the music snippet. For HTML output, this is -a link. +the file name right before the music snippet. For HTML output, this +is a link. Only the base name of the file is printed, i.e. the +directory part of the file path is stripped. @item fontload This option includes fonts in all of the generated EPS-files for this @@ -816,7 +822,11 @@ Print a short help message. @item -I @var{dir} @itemx --include=@var{dir} -Add @var{dir} to the include path. +Add @var{dir} to the include path. @command{lilypond-book} also looks +for already compiled snippets in the include path, and does not write +them back to the output directory, so in some cases it is necessary to +invoke further processing commands such as @command{makeinfo} or +@command{latex} with the same @code{-I @var{dir}} options. @item -o @var{dir} @itemx --output=@var{dir} diff --git a/Documentation/user/lilypond-learning.tely b/Documentation/user/lilypond-learning.tely index c1e811970a..f700ed61c6 100644 --- a/Documentation/user/lilypond-learning.tely +++ b/Documentation/user/lilypond-learning.tely @@ -10,6 +10,8 @@ @documentencoding UTF-8 @documentlanguage en +@include macros.itexi + @iftex @afourpaper @c don't replace quotes with directed quotes @@ -23,7 +25,7 @@ @c don't remove this comment. @ignore @omfcreator Han-Wen Nienhuys, Jan Nieuwenhuizen and Graham Percival -@omfdescription User manual of the LilyPond music engraving system +@omfdescription Learning Manual of the LilyPond music engraving system @omftype program usage @omfcategory Applications|Publishing @omflanguage English @@ -64,21 +66,7 @@ Free Documentation License''. @vskip 20pt -@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 - +For LilyPond version @version{} @end titlepage @copying @@ -112,12 +100,8 @@ Free Documentation License''. @ifnottex @node Top @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 2.11.x series. -@ifhtml -(See the bottom of this page for the exact version number). -@end ifhtml +This is the learning manual for GNU LilyPond version @version{}. @cindex web site @cindex URL @@ -147,8 +131,6 @@ Appendices @contents -@include macros.itexi - @include preface.itely @include introduction.itely @include tutorial.itely diff --git a/Documentation/user/lilypond-program.tely b/Documentation/user/lilypond-program.tely index 6fa9f3900b..1ddba147e4 100644 --- a/Documentation/user/lilypond-program.tely +++ b/Documentation/user/lilypond-program.tely @@ -10,6 +10,8 @@ @documentencoding UTF-8 @documentlanguage en +@include macros.itexi + @iftex @afourpaper @c don't replace quotes with directed quotes @@ -23,7 +25,7 @@ @c don't remove this comment. @ignore @omfcreator Han-Wen Nienhuys, Jan Nieuwenhuizen and Graham Percival -@omfdescription User manual of the LilyPond music engraving system +@omfdescription Program Usage of the LilyPond music engraving system @omftype program usage @omfcategory Applications|Publishing @omflanguage English @@ -64,21 +66,7 @@ Free Documentation License''. @vskip 20pt -@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 - +For LilyPond version @version{} @end titlepage @copying @@ -114,10 +102,7 @@ Free Documentation License''. @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 2.11.x series. -@ifhtml -(See the bottom of this page for the exact version number). -@end ifhtml +This is the program usage manual for GNU LilyPond version @version{}. @cindex web site @cindex URL @@ -143,8 +128,6 @@ Appendices @contents -@include macros.itexi - @include install.itely @include setup.itely @include running.itely diff --git a/Documentation/user/lilypond.tely b/Documentation/user/lilypond.tely index 0631951f5a..59713a05d7 100644 --- a/Documentation/user/lilypond.tely +++ b/Documentation/user/lilypond.tely @@ -6,10 +6,12 @@ version that you are working on. See TRANSLATION for details. @end ignore @setfilename lilypond.info -@settitle GNU LilyPond user manual +@settitle GNU LilyPond User Manual @documentencoding UTF-8 @documentlanguage en +@include macros.itexi + @iftex @afourpaper @c don't replace quotes with directed quotes @@ -58,7 +60,7 @@ Distributions will want to install lilypond.info in postinstall, doing: @c don't remove this comment. @ignore @omfcreator Han-Wen Nienhuys, Jan Nieuwenhuizen and Graham Percival -@omfdescription User manual of the LilyPond music engraving system +@omfdescription Notation Reference of the LilyPond music engraving system @omftype user manual @omfcategory Applications|Publishing @omflanguage English @@ -82,7 +84,7 @@ This document is also available as a @titlepage @title LilyPond @subtitle The music typesetter -@titlefont{User manual} +@titlefont{Notation Reference} @author The LilyPond development team Copyright @copyright{} 1999--2007 by the authors @@ -98,21 +100,7 @@ Free Documentation License''. @vskip 20pt -@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 - +For LilyPond version @version{} @end titlepage @copying @@ -148,10 +136,7 @@ Free Documentation License''. @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 2.11.x series. -@ifhtml -(See the bottom of this page for the exact version number). -@end ifhtml +This is the User Manual for GNU LilyPond version @version{}. @cindex web site @cindex URL @@ -187,8 +172,6 @@ Appendices @contents -@include macros.itexi - @include notation.itely @include specialist.itely diff --git a/Documentation/user/macros.itexi b/Documentation/user/macros.itexi index b0dafefd95..4ef3123bfd 100644 --- a/Documentation/user/macros.itexi +++ b/Documentation/user/macros.itexi @@ -7,8 +7,7 @@ @end ignore @macro version -@c @value{version} -2.11.41 +@value{version} @end macro @c ***** Displaying text ***** @@ -168,6 +167,10 @@ @ref{\TEXT\,,,lilypond-learning-big-page} @end macro +@macro rlsr{TEXT} +@ref{\TEXT\,,,lilypond-snippets-big-page} +@end macro + @end ifset @@ -198,6 +201,10 @@ @ref{\TEXT\,,,lilypond-learning} @end macro +@macro rlsr{TEXT} +@ref{\TEXT\,,,lilypond-snippets} +@end macro + @end ifclear @end ifhtml @@ -231,6 +238,10 @@ @ref{\TEXT\,,,lilypond-learning} @end macro +@macro rlsr{TEXT} +@ref{\TEXT\,,,lilypond-snippets} +@end macro + @end ifdocbook @@ -262,6 +273,10 @@ @ref{\TEXT\,,,lilypond-learning} @end macro +@macro rlsr{TEXT} +@ref{\TEXT\,,,lilypond-snippets} +@end macro + @end ifinfo @@ -280,17 +295,18 @@ @macro rprogram{TEXT} program usage manual, @ref{\TEXT\,,,lilypond-program} -@c @internalsref{\TEXT\} @end macro @macro ruser{TEXT} notation reference, @ref{\TEXT\,,,lilypond} -@c @internalsref{\TEXT\} @end macro @macro rlearning{TEXT} learning manual, @ref{\TEXT\,,,lilypond-learning} -@c @internalsref{\TEXT\} +@end macro + +@macro rlsr{TEXT} +@ref{\TEXT\,,,lilypond-snippets} @end macro @end iftex diff --git a/Documentation/user/music-glossary.tely b/Documentation/user/music-glossary.tely index 45378ffd61..dba389167b 100644 --- a/Documentation/user/music-glossary.tely +++ b/Documentation/user/music-glossary.tely @@ -50,9 +50,9 @@ Copyright @copyright{} 1999--2007 by the authors @c TODO: multiple omfcreators? @ignore -@omfcreator Christian Mondrup +@omfcreator Christian Mondrup, Kurt Kroon @omfdescription Glossary of musical terms with translations -@omftype user's guide +@omftype glossary @omfcategory Applications|Publishing @omflanguage English @end ignore @@ -338,8 +338,9 @@ Languages in this order. * note names:: * note value:: * octavation:: -* octave sign:: * octave:: +* octave marking:: +* octave sign:: * ornament:: * ossia:: * part:: @@ -1235,7 +1236,7 @@ D: Brevis, NL: brevis, DK: brevis, S: brevis, -FI: brevis. +FI: brevis, kaksoiskokonuotti. Note value twice as long as a whole note. Mainly used in pre-1650 music. The shortest note value generally used in white mensural notation, hence the @@ -1912,11 +1913,26 @@ DK: ?, S: ?, FI: ?. +@enumerate + +@item +A time signature that additively combines two or more unequal meters, e.g. +"3/8 + 2/8" instead of "5/8". Sometimes called additive time signatures. +@c See +@c @lsr{Rhythms/compound-time-signatures.ly}. + +@item +A meter that includes a triplet subdivision within the beat: see +@ref{compound meter}. + +@end enumerate + @ref{compound meter} @seealso @ref{meter}. +@c @lsr{Rhythms/compound-time-signatures.ly} @node concert pitch @@ -5079,9 +5095,9 @@ I: all'ottava, F: octaviation, D: Oktavierung, NL: octaveren, -DK: ?, -S: ?, -FI: ?. +DK: oktavering, +S: oktavering, +FI: oktaavamerkintä. The use of a phrase or abbreviation with an extender line or bracket to indicate that a passage is to be played in a different octave: @@ -5120,27 +5136,6 @@ To parallel the list above: @ref{interval}, @ref{loco}, @ref{octave}. -@node octave sign -@section octave sign - -ES: ?, -I: ?, -F: ?, -D: ?, -NL: ?, -DK: ?, -S: ?, -FI: ?. - -Putting 8 or 15 above or below the clef to indicate that the entire part is -played in the indicated octave: a clef-wide octavation. An octave sign can be -applied to any clef, though it is most frequently used with the G and F clefs. - -@seealso - -@ref{G clef}, @ref{F clef}. - - @node octave @section octave @@ -5163,6 +5158,35 @@ bracket, or @samp{loco} see octavation. @ref{interval}, @ref{octavation}. +@node octave marking +@section octave marking + +@seealso + +@ref{octavation}. + + +@node octave sign +@section octave sign + +ES: ?, +I: ?, +F: ?, +D: ?, +NL: ?, +DK: ?, +S: ?, +FI: ?. + +Putting 8 or 15 above or below the clef to indicate that the entire part is +played in the indicated octave: a clef-wide octavation. An octave sign can be +applied to any clef, though it is most frequently used with the G and F clefs. + +@seealso + +@ref{G clef}, @ref{F clef}. + + @node ornament @section ornament @@ -7273,12 +7297,12 @@ saxophone, and bassoon. @tab longa @tab longapaus @tab brevis - @tab brevis(paus) + @tab brevispaus @item @strong{FI} - @tab longa - @tab longa - @tab brevis - @tab brevis + @tab longa-nuotti + @tab longa-tauko + @tab brevis-nuotti, kaksoiskokonuotti + @tab brevis-tauko, kaksoiskokotauko @end multitable @@ -7603,8 +7627,8 @@ the lilypond-user discussion list. @tab honderdachtentwintigste rust @tab 128e noot @item @strong{DK} - @tab ? - @tab ? + @tab hundredeotteogtyvendedelsnode + @tab hundredeotteogtyvendedelspause @tab - @item @strong{SE} @tab hundratjugoåttondelsnot @@ -7645,8 +7669,8 @@ the lilypond-user discussion list. @tab tweehonderdzesenvijftigste rust @tab 256e noot @item @strong{DK} - @tab ? - @tab ? + @tab tohundredeseksoghalvtredsendedelsnode + @tab tohundredeseksoghalvtredsendedelspause @tab - @item @strong{SE} @tab tvåhundrafemtiosjättedelsnot diff --git a/Documentation/user/pitches.itely b/Documentation/user/pitches.itely index 0ec57da745..f5062f83e7 100644 --- a/Documentation/user/pitches.itely +++ b/Documentation/user/pitches.itely @@ -10,8 +10,7 @@ @node Pitches @section Pitches -@lilypondfile[quote,ragged-right,line-width=16\cm,staffsize=16] -{pitches-headword.ly} +@lilypondfile[quote]{pitches-headword.ly} This section discusses how to specify the pitch of notes. There are three steps to this process: input, modification, and output. @@ -1756,6 +1755,8 @@ ambitus. @node Note heads @subsection Note heads +This section suggests ways of altering note heads. + @menu * Special note heads:: * Easy notation note heads:: diff --git a/Documentation/user/policy.txt b/Documentation/user/policy.txt index fd2c895cbb..e259f39135 100644 --- a/Documentation/user/policy.txt +++ b/Documentation/user/policy.txt @@ -46,8 +46,8 @@ 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 write: -Dynamics (or whatever) may be manually placed above or below the -staff, for details see @ref{Controlling direction and placement}". +DYNAMICS may be manually placed above or below the +staff, 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 diff --git a/Documentation/user/repeats.itely b/Documentation/user/repeats.itely index 3aec6edc08..1c62bef643 100644 --- a/Documentation/user/repeats.itely +++ b/Documentation/user/repeats.itely @@ -13,47 +13,8 @@ {repeats-headword.ly} Repetition is a central concept in music, and multiple notations -exist for repetitions. +exist for repetitions. LilyPond supports the following kinds of repeats: -@menu -* Writing repeats:: -* Other repeats:: -@end menu - -@node Writing repeats -@subsection Writing repeats - -This section discusses how to write repeats, including repeated -sections of music enclosed within repeat bars, alternate repeat -endings, tremolos, and beat or measure repeats. - -@menu -* Repeat syntax:: -* Normal repeats:: -* Manual repeat commands:: -@end menu - - -@node Repeat syntax -@subsubsection Repeat syntax - -@cindex repeats -@cindex repeat syntax -@cindex syntax, repeat - -LilyPond has one syntactic construct for specifying different -types of repeats. The syntax is - -@example -\repeat @var{variant} @var{repeatcount} @var{repeatbody} -@end example - -where @var{repeabody} is a music expression. - -The following types of repetition are supported - -@cindex repeat volta -@cindex volta @table @code @item volta @@ -63,29 +24,29 @@ line is only printed at the end. Alternative endings (volte) are printed, left to right with brackets. This is the standard notation for repeats with alternatives. -@cindex repetitious music - @item unfold The repeated music is fully written out, as many times as specified by @var{repeatcount}. This is useful when entering repetitious music. -@cindex tremolo -@cindex tremolo beams -@cindex beams, tremolo +@item percent +Make beat or measure repeats. These look like percent signs. +Percent repeats must be declared within a @code{Voice} context. @item tremolo Make tremolo beams. -@cindex beat repeat -@cindex measure repeat -@cindex percent sign, for repeat +@end table -@item percent -Make beat or measure repeats. These look like percent signs. -Percent repeats must be declared within a @code{Voice} context. +LilyPond has one syntactic construct for specifying different +types of repeats. The syntax is + +@example +\repeat @var{variant} @var{repeatcount} @var{repeatbody} +@end example + +where @var{repeabody} is a music expression. -@end table Alternative endings are entered with @funindex \alternative @@ -100,13 +61,23 @@ Alternative endings are entered with @noindent after a @code{\repeat volta} or @code{unfold} block, where each -@var{alternative} is a music expression. If you give -less alternatives than @var{repeatcount}, the first alternative -is assumed to be played more than once. +@var{alternative} is a music expression. If you give fewer +alternatives than @var{repeatcount}, the first alternative is assumed +to be played more than once. -@node Normal repeats -@subsubsection Normal repeats +@menu +* Writing long repeats:: +* Short repeats:: +@end menu + +@node Writing long repeats +@subsection Writing long repeats + +@menu +* Normal repeats:: +* Manual repeat marks:: +@end menu @cindex volta @cindex prima volta @@ -115,10 +86,17 @@ is assumed to be played more than once. @cindex volta, seconda @funindex \repeat +@node Normal repeats +@subsubsection Normal repeats + +FIXME: this example needs to go by itself. +@verbatim +\repeat volta 2 { c4 d e f } +@end verbatim + Normal repeats, with or without alternate repeats: @lilypond[quote,ragged-right,fragment,verbatim,relative=2] -\repeat volta 2 { c4 d e f } \repeat volta 2 { g f e d } \alternative { { cis2 g' } @@ -240,8 +218,8 @@ repeated. -@node Manual repeat commands -@subsubsection Manual repeat commands +@node Manual repeat marks +@subsubsection Manual repeat marks @funindex repeatCommands @@ -292,14 +270,65 @@ Internals Reference: @internalsref{VoltaBracket}, and @internalsref{UnfoldedRepeatedMusic}. -@node Other repeats -@subsection Other repeats +@node Short repeats +@subsection Short repeats @menu +* Percent repeats:: * Tremolo repeats:: -* Measure repeats:: @end menu +@node Percent repeats +@subsubsection Percent repeats + +@cindex percent repeats +@cindex measure repeats + +A note pattern can be repeated with the @code{\repeat percent +@var{number}} syntax. The music is printed once, and the pattern +is replaced with a special sign. Patterns of one and two measures +are replaced by percent-like signs, patterns that divide the +measure length are replaced by slashes. Percent repeats must be +declared within a @code{Voice} context. + +@lilypond[quote,verbatim,ragged-right] +\new Voice \relative c' { + \repeat percent 4 { c4 } + \repeat percent 2 { c2 es2 f4 fis4 g4 c4 } +} +@end lilypond + +Measure repeats of more than two measures get a counter if you +switch on the @code{countPercentRepeats} property: + +@lilypond[relative=2,fragment,quote,verbatim,ragged-right] +\new Voice { + \set countPercentRepeats = ##t + \repeat percent 4 { c1 } +} +@end lilypond + + +Isolated percents can also be printed. This is done by entering a +multi-measure rest with a different print function: + +@lilypond[fragment,verbatim,quote] +\override MultiMeasureRest #'stencil + = #ly:multi-measure-rest::percent +R1 +@end lilypond + + +@seealso + +Snippets: @lsrdir{Repeats,Repeats} + +Internals Reference: @internalsref{RepeatSlash}, +@internalsref{PercentRepeat}, @internalsref{DoublePercentRepeat}, +@internalsref{DoublePercentRepeatCounter}, +@internalsref{PercentRepeatCounter}, +@internalsref{PercentRepeatedMusic}. + @node Tremolo repeats @subsubsection Tremolo repeats @@ -369,59 +398,6 @@ Snippets: @lsrdir{Repeats,Repeats} Elsewhere: @internalsref{StemTremolo}. -@node Measure repeats -@subsubsection Measure repeats - -@cindex percent repeats -@cindex measure repeats - -A note pattern can be repeated with the @code{\repeat percent -@var{number}} syntax. The music is printed once, and the pattern -is replaced with a special sign. Patterns of one and two measures -are replaced by percent-like signs, patterns that divide the -measure length are replaced by slashes. Percent repeats must be -declared within a @code{Voice} context. - -@lilypond[quote,verbatim,ragged-right] -\new Voice \relative c' { - \repeat percent 4 { c4 } - \repeat percent 2 { c2 es2 f4 fis4 g4 c4 } -} -@end lilypond - -Measure repeats of more than two measures get a counter if you -switch on the @code{countPercentRepeats} property: - -@lilypond[relative=2,fragment,quote,verbatim,ragged-right] -\new Voice { - \set countPercentRepeats = ##t - \repeat percent 4 { c1 } -} -@end lilypond - - -Isolated percents can also be printed. This is done by entering a -multi-measure rest with a different print function: - -@lilypond[fragment,verbatim,quote] -\override MultiMeasureRest #'stencil - = #ly:multi-measure-rest::percent -R1 -@end lilypond - - - - -@seealso - -Snippets: @lsrdir{Repeats,Repeats} - -Internals Reference: @internalsref{RepeatSlash}, -@internalsref{PercentRepeat}, @internalsref{DoublePercentRepeat}, -@internalsref{DoublePercentRepeatCounter}, -@internalsref{PercentRepeatCounter}, -@internalsref{PercentRepeatedMusic}. - diff --git a/Documentation/user/rhythms.itely b/Documentation/user/rhythms.itely index cf4c1a205d..8bd6c24b7e 100644 --- a/Documentation/user/rhythms.itely +++ b/Documentation/user/rhythms.itely @@ -9,8 +9,7 @@ @node Rhythms @section Rhythms -@lilypondfile[ragged-right,line-width=16\cm,staffsize=14,quote] -{rhythms-headword.ly} +@lilypondfile[quote]{rhythms-headword.ly} This section discusses rhythms, rests, durations, beaming and bars. @@ -1899,7 +1898,8 @@ with @code{\set Timing.defaultBarType = }@var{bartype}. @seealso Notation Reference: @ref{Line breaking}, @ref{Repeats}, -@ref{System start delimiters}. +@c FIXME: node name changed, but is subject to further changes. +@c @ref{System start delimiters}. Snippets: @lsrdir{Rhythms,Rhythms} diff --git a/Documentation/user/simultaneous.itely b/Documentation/user/simultaneous.itely index 4713ae4cd0..71b3a166ea 100644 --- a/Documentation/user/simultaneous.itely +++ b/Documentation/user/simultaneous.itely @@ -9,8 +9,7 @@ @node Simultaneous notes @section Simultaneous notes -@lilypondfile[quote,ragged-right,line-width=16\cm,staffsize=16] -{simultaneous-headword.ly} +@lilypondfile[quote]{simultaneous-headword.ly} Polyphony in music refers to having more than one voice occurring in a piece of music. Polyphony in LilyPond refers to having more diff --git a/Documentation/user/staff.itely b/Documentation/user/staff.itely index 618bc6bf27..68e78ac3fe 100644 --- a/Documentation/user/staff.itely +++ b/Documentation/user/staff.itely @@ -9,20 +9,16 @@ @node Staff notation @section Staff notation -@lilypondfile[quote,ragged-right,line-width=16\cm,staffsize=16] -{staff-headword.ly} +@lilypondfile[quote]{staff-headword.ly} -Notes, dynamic signs, rests, etc., are grouped with a set of horizontal -lines, called a staff (plural @q{staves}). In LilyPond, these -lines are drawn using a separate layout object called @code{staff -symbol}. - -Two or more staves can be grouped vertically in a @code{GrandStaff}, a -@code{StaffGroup}, or a @code{ChoirStaff}. +This section explains how to influence the staff appearance, +print scores with more than one staff, and +how to apply specific performance marks to single staves. @menu * Displaying staves:: +* Modifying single staves:: * Writing parts:: @end menu @@ -30,97 +26,255 @@ Two or more staves can be grouped vertically in a @code{GrandStaff}, a @node Displaying staves @subsection Displaying staves +This section shows the different possibilities to create and group +staves into groups, which can be marked in the beginning of each +line with either a bracket or a brace. + @menu -* System start delimiters:: -* Staff symbol:: -* Hiding staves:: +* Initiating new staves:: +* Grouping staves:: @end menu -@node System start delimiters -@subsubsection System start delimiters +@node Initiating new staves +@subsubsection Initiating new staves + +@cindex new staff +@cindex staff initiation +@cindex staff, new + +The lines of a staff (pl. staves) are produced by a @code{staff symbol} +layout object. +LilyPond ensures that all music is printed on staff lines so if you just +type in some notes, the staff symbol is added automatically to the output. +This is just a shortcut to make the program usage more easy, but in most +cases where you want to print more complex music on more than on staff +it is better to create the staff explicitly at the beginning of your +music inside of the @code{\score} environment. + +With the command @code{\new Staff @{ ... @}} you actually call a new +Staff context that has already everything set up to the default +engraving rules. @ref{Creating contexts} explains how different contexts +are called. + +Once a staff is instantiated it can be started or stopped at every point +in the score. This is done with the commands @code{\startStaff} and +@code{\stopStaff}. How to use it is shown in @ref{Staff symbol}. + +Besides the default @code{Staff} context there are also +specialized staff contexts for setting percussion, Guitar music, +and ancient music. +See @ref{Printing chord names}, @ref{Percussion staves}, +@ref{Tablatures basic}, @ref{Gregorian Chant contexts}, and +@ref{Mensural contexts} for an explanation. + +@seealso + +Music Glossary: @rglos{staff}, @rglos{staves}. + +Notation Reference: @ref{Printing chord names}, @ref{Percussion staves}, +@ref{Tablatures basic}, @ref{Gregorian Chant contexts}, and +@ref{Mensural contexts}. + +Snippets: @lsrdir{Staff,Staff-notation}. + +Internals Reference: @internalsref{Staff}. + + + +@node Grouping staves +@subsubsection Grouping staves @cindex start of system @cindex staff, multiple +@cindex staves, multiple +@cindex system start delimiters @cindex bracket, vertical @cindex brace, vertical @cindex grand staff +@cindex piano staff @cindex staff group @cindex staff, choir +@cindex choir staff @cindex system -Many scores consist of more than one staff. These staves can be -grouped in several different ways: +LilyPond provides different types of contexts to group single staves +together. These contexts influence in the first place the appearance +of the system start delimiter, but they have also influence on the +behaviour of the bar lines. + @itemize @item -In a @code{GrandStaff}, the group is started with a brace -at the left, and bar lines are connected between the staves. +If no context is specified, the default properties for the score +will be used: the group is started with a vertical line, and the +bar lines are not connected. @lilypond[verbatim,ragged-right,quote] -\new GrandStaff -\relative << +\relative c'' { << \new Staff { c1 c } \new Staff { c c } ->> +>> } @end lilypond @item In a @code{StaffGroup}, the bar lines will be drawn through -all the staves, but the group is started with a bracket. +all the staves, and the group is started with a bracket. @lilypond[verbatim,ragged-right,quote] -\new StaffGroup -\relative << - \new Staff { c1 c } - \new Staff { c c } ->> +\new StaffGroup { + \relative c'' << + \new Staff { c1 c } + \new Staff { c c } + >> +} @end lilypond @item -In a @code{ChoirStaff}, the group is started with a -bracket, but bar lines are not connected. +In a @code{ChoirStaff}, the group is +started with a bracket, but bar lines are not connected. @lilypond[verbatim,ragged-right,quote] -\new ChoirStaff -\relative << - \new Staff { c1 c } - \new Staff { c c } ->> +\new ChoirStaff { + \relative c'' << + \new Staff { c1 c } + \new Staff { c c } + >> +} @end lilypond @item -If no context is specified, the default properties for the score -will be used: the group is started with a vertical line, and the -bar lines are not connected. +In a @code{GrandStaff}, the group is started with a brace +at the left, and bar lines are connected between the staves. @lilypond[verbatim,ragged-right,quote] -\relative << +\new GrandStaff { + \relative c'' << + \new Staff { c1 c } + \new Staff { c c } + >> +} +@end lilypond + +@item +The @code{PianoStaff} behaves almost as the @code{GrandStaff} but is +optimized for setting piano music. + +@lilypond[verbatim,ragged-right,quote] +\new PianoStaff +\relative c'' << \new Staff { c1 c } \new Staff { c c } >> @end lilypond + @end itemize -@cindex Mensurstriche layout -@cindex Renaissance music +According to classic engraver rules an orchestral score consists of +staves connected only with a single line at the beginning of the system. +In LilyPond this is produced grouping the @code{Staff} contexts with +@code{<< ... >>}. -In addition to these four staff group types, other groupings can -be produced by changing various properties. E.g., the -@q{Mensurstriche} layout common in Renaissance music, with -bar lines running between but not through the staves, can be -produced from a @code{StaffGroup} or @code{GrandStaff} context if -the bar lines are made transparent in the @code{Staff} itself, with -the command @code{\override Staff.BarLine #'transparent = ##t} +Each instrument family is grouped inside of a @code{StaffGroup} with a +starting bracket. A group of same instruments or an instrument using +more than one staff is grouped with braces in a @code{GrandStaff}. + +As the context names tell, @code{PianoStaff} is used for notating +piano music and @code{ChoirStaff} for all kind of vocal ensemble music. + +Here is an example of an orchestral score using groupings. Note that the +instrument names are omited here, see @ref{Instrument names} how to set +them. + +@lilypond[verbatim,ragged-right,quote] +\score{ \relative c' { +<< + \new StaffGroup %the woodwinds group + << + \new Staff { c1 c } + \new Staff { c c } + \new Staff { c c } + >> + \new StaffGroup %the brass group + << + \new Staff { c c } + \new Staff { c c } + \new GrandStaff %the horns need a GrandStaff (same instrument) + << + \new Staff { c c } + \new Staff {\clef bass c c } + >> + >> + \new ChoirStaff %for a vocal part + << + \new Staff { c c } + \new Staff {\clef alto c c } + \new Staff {\clef bass c c } + >> + \new PianoStaff %for the piano + << + \new Staff { c c } + \new Staff {\clef bass c c } + >> +>> +} } +@end lilypond + +The different staff contexts are already nested in this example, as +the @q{horn section} is contained both in a @code{StaffGroup} and a +@code{GrandStaff}. @cindex staff, nested -Staff groups can be nested, using the context -@code{InnerStaffGroup} or @code{InnerChoirStaff}; see -@c @lsr{staff,staff-brackets.ly} -@c snippet 137 +It is also possible to nest staves of the same type with the contexts +@code{InnerStaffGroup} and @code{InnerChoirStaffGroup}. These behave like +the corresponding normal staff groups but can only initiated inside of +another staff context. Again LilyPond would add a normal @code{StaffGroup} +to the output, if you would start a score with an @code{InnerStaffGroup}. + +Note that @code{GrandStaff} and @code{PianoStaff} do not have any inner +grouping contexts. They can both be inside an inner staff context, though. + +@c snippet staff-brackets.ly +@lilypond[verbatim,ragged-right,quote] +\score { +<< + \new StaffGroup << + \new Staff {c' d' e' f'} + \new InnerStaffGroup << + \new Staff {c' d' e' f'} + \new GrandStaff << + \new Staff {c' d' e' f'} + \new Staff {c' d' e' f'} + >> + \new Staff {c' d' e' f'} + >> + \new ChoirStaff << + \new Staff {c' d' e' f'} + \new InnerStaffGroup << + \new Staff {c' d' e' f'} + >> + \new Staff {c' d' e' f'} + >> + >> + \new ChoirStaff << + \new Staff {c' d' e' f'} + \new InnerChoirStaff << + \new Staff {c' d' e' f'} + \new Staff {c' d' e' f'} + >> + \new Staff {c' d' e' f'} + >> +>> } +@end lilypond + @snippets +@c FIXME: not yet in master +@c @lilypondfile[verbatim,lilyquote,ragged-right,texidoc] +@c {nesting-staves.ly} + + More complex nesting can be accomplished using the property @code{systemStartDelimiterHierarchy}: @@ -145,24 +299,69 @@ and @internalsref{SystemStartBracket}. A fourth delimiter, @code{systemStartSquare}, is also available, but must be instantiated manually + + +@cindex mensurstriche layout +@cindex renaissance music +@cindex transcription of mensural music +@cindex mensural music, transcription of + + +@c FIXME: not yet in master +@c @lilypondfile[verbatim,lilyquote,ragged-right,texidoc] +@c {mensurstriche-layout.ly} + +Other groupings may be achieved by changing various properties. +E.g., the +@q{Mensurstriche} layout common in Renaissance music, with +bar lines running between but not through the staves, can be +produced from a @code{StaffGroup} or @code{GrandStaff} context if +the bar lines are made transparent in the @code{Staff} itself: + +@lilypond[verbatim,ragged-right,quote] +global = {\override Staff.BarLine #'transparent = ##t + s1 s + %the final bar line is not interupted + \once \override Staff.BarLine #'transparent = ##f + \bar "|."} +\new StaffGroup +\relative c'' << + \new Staff {<< \global { c1 c } >>} + \new Staff {<< \global { c c } >>} +>> +@end lilypond + + + @c FIXME: Graham will deal with this. -gp @c snippet 201 To display a bracket even if there is only one staff, see -@c @lsr{staff,display-bracket-with-only-one-staff-in-a system.ly} +@c @lilypondfile[verbatim,lilyquote,ragged-right,texidoc] +@c {staff,display-bracket-with-only-one-staff-in-a system.ly} @seealso -Music Glossary: @rglos{brace}, @rglos{staff}, @rglos{staves} +Music Glossary: @rglos{brace}, @rglos{bracket}. Snippets: @lsrdir{Staff,Staff-notation} Internals Reference: @internalsref{ChoirStaff}, -@internalsref{GrandStaff}, @internalsref{StaffGroup}, +@internalsref{GrandStaff}, @internalsref{PianoStaff}, +@internalsref{StaffGroup}, @internalsref{SystemStartBar}, @internalsref{SystemStartBrace}, -@internalsref{SystemStartBracket}, -@internalsref{systemStartDelimiterHierarchy}. +@internalsref{SystemStartBracket}, @internalsref{SystemStartSquare}. + + +@node Modifying single staves +@subsection Modifying single staves + +@menu +* Staff symbol:: +* Ossia staves:: +* Hiding staves:: +@end menu @node Staff symbol @subsubsection Staff symbol @@ -189,6 +388,9 @@ b b b b @end lilypond +@node Ossia staves +@subsubsection Ossia staves + @cindex staves, Frenched @cindex ossia @cindex Frenched staves diff --git a/Documentation/user/templates.itely b/Documentation/user/templates.itely index 9d710c5bec..c621d1e61f 100644 --- a/Documentation/user/templates.itely +++ b/Documentation/user/templates.itely @@ -31,13 +31,13 @@ beautiful printed scores! @appendixsubsec Notes only -@lilypondfile[verbatim,lilyquote,ragged-right,texidoc] +@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,addversion] {single-staff-template-with-only-notes.ly} @appendixsubsec Notes and lyrics -@lilypondfile[verbatim,lilyquote,ragged-right,texidoc] +@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,addversion] {single-staff-template-with-notes-and-lyrics.ly} @appendixsubsec Notes and chords @@ -255,3 +255,60 @@ d4 c b a @@bye @end example + + +@appendixsubsec xelatex + +@verbatim +\documentclass{article} +\usepackage{ifxetex} +\ifxetex +%xetex specific stuff +\usepackage{xunicode,fontspec,xltxtra} +\setmainfont[Numbers=OldStyle]{Times New Roman} +\setsansfont{Arial} +\else +%This can be empty if you are not going to use pdftex +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{mathptmx}%Times +\usepackage{helvet}%Helvetica +\fi +%Here you can insert all packages that pdftex also understands +\usepackage[ngerman,finnish,english]{babel} +\usepackage{graphicx} + +\begin{document} +\title{A short document with lilypond and xelatex} +\maketitle + +Normal \textbf{font} commands inside the \emph{text} work, +because they \textsf{are supported by \LaTeX{} and XeteX.} +If you want to use specific commands like \verb+\XeTeX+, you +should include them again in a \verb+\ifxetex+ environment. +You can use this to print the \ifxetex \XeTeX{} command \else +XeTeX command \fi which is not known to normal \LaTeX . + +In normal text you can easily use lilypond commands, like this: + +\begin{lilypond} +{a2 b c'8 c' c' c'} +\end{lilypond} + +\noindent +and so on. + +The fonts of snippets set with lilypond will have to be set from +inside +of the snippet. For this you should read the AU on how to use +lilypond-book. + +\selectlanguage{ngerman} +Auch Umlaute funktionieren ohne die \LaTeX -Befehle, wie auch alle +anderen +seltsamen Zeichen: __ ______, wenn sie von der Schriftart +unterst__tzt werden. +\end{document} +@end verbatim + + diff --git a/Documentation/user/text.itely b/Documentation/user/text.itely index 5e0db95539..fe4464f894 100644 --- a/Documentation/user/text.itely +++ b/Documentation/user/text.itely @@ -9,8 +9,7 @@ @node Text @section Text -@lilypondfile[quote,ragged-right,line-width=16\cm,staffsize=16] -{text-headword.ly} +@lilypondfile[quote]{text-headword.ly} This section explains how to include text (with various formatting) in your scores. diff --git a/Documentation/user/tutorial.itely b/Documentation/user/tutorial.itely index c4681c27cc..7373f6222c 100644 --- a/Documentation/user/tutorial.itely +++ b/Documentation/user/tutorial.itely @@ -1585,7 +1585,7 @@ The @code{\version} statement records the version of LilyPond that was used to write the file: @example -\version "2.11.38" +\version @w{"@version{}"} @end example @noindent @@ -1607,7 +1607,7 @@ main music expression; the @code{\header} block is usually placed underneath the @ref{Version number}. @example -\version "2.11.38" +\version @w{"@version{}"} \header @{ title = "Symphony" composer = "Me" diff --git a/Documentation/user/tweaks.itely b/Documentation/user/tweaks.itely index a68fd71359..c0c22628af 100644 --- a/Documentation/user/tweaks.itely +++ b/Documentation/user/tweaks.itely @@ -58,10 +58,10 @@ and constructing Tweaks. @node Objects and interfaces @subsection Objects and interfaces -@cindex Objects -@cindex Grobs -@cindex Spanners -@cindex Interfaces +@cindex objects +@cindex grobs +@cindex spanners +@cindex interfaces Tweaking involves modifying the internal operation and structures of the LilyPond program, so we must first introduce some terms @@ -108,7 +108,7 @@ interpretation of the input file. To simplify these internal operations these common actions and properties are grouped together in an object called a @code{grob-interface}. There are many other groupings of common properties like this, each -one given a name ending in @code{-interface}. In total there +one given a name ending in @code{interface}. In total there are over 100 such interfaces. We shall see later why this is of interest and use to the user. @@ -169,8 +169,8 @@ We have already met the commands @code{\set} and @code{\with}, used to change the properties of @strong{contexts} and to remove and add @strong{engravers}, in @ref{Modifying context properties} and @ref{Adding -and removing engravers}. We now must meet one more important -command. +and removing engravers}. We now must meet some more important +commands. The command to change the properties of @strong{layout objects} is @code{\override}. Because this command has to modify @@ -183,7 +183,8 @@ how this is done. The general syntax of this command is: @example -\override @emph{context}.@emph{layout_object} #'@emph{layout_property} = #@emph{value} +\override @emph{context}.@emph{layout_object} + #'@emph{layout_property} = #@emph{value} @end example @noindent @@ -198,12 +199,31 @@ level contexts, i.e., @code{Voice}, @code{ChordNames} or @code{Lyrics}, and we shall omit it in many of the following examples. We shall see later when it must be specified. +Later sections deal comprehensively with properties and their +values, but to illustrate the format and use of these commands +we shall use just a few simple properties and values which are +easily understood. + For now, don't worry about the @code{#'}, which must precede the layout property, and the @code{#}, which must precede the value. These must always be present in exactly this form. This is the most common command used in tweaking, and most of the rest of this chapter will be directed to presenting examples of how it is -used. +used. Here is a simple example to change the color of the +note head: + +@lilypond[quote,fragment,ragged-right,verbatim,relative=1] +c d +\override NoteHead #'color = #red +e f g +\override NoteHead #'color = #green +a b c +@end lilypond + +@strong{\revert command} + +@cindex revert command +@funindex \revert Once overridden, the property retains its new value until it is overridden again or a @code{\revert} command is encountered. @@ -218,7 +238,35 @@ commands have been issued. Again, just like @emph{context} in the @code{\override} command, @emph{context} is often not needed. It will be omitted -in many of the following examples. +in many of the following examples. Here we revert the color +of the note head to the default value for the final two notes: + +@lilypond[quote,fragment,ragged-right,verbatim,relative=1] +c d +\override NoteHead #'color = #red +e f g +\override NoteHead #'color = #green +a +\revert NoteHead #'color +b c +@end lilypond + +@strong{\once prefix} + +Both the @code{\override} and the @code{\set} commands may be +prefixed by @code{\once}. This causes the following +@code{\override} or @code{\set} command to be effective only +during the current musical moment before the property reverts +back to its default value. Using the same example, we can +change the color of a single note like this: + +@lilypond[quote,fragment,ragged-right,verbatim,relative=1] +c d +\once \override NoteHead #'color = #red +e f g +\once \override NoteHead #'color = #green +a b c +@end lilypond @strong{\overrideProperty command} @@ -250,7 +298,8 @@ middle note (the E) in a C major chord. Let's first see what @lilypond[quote,fragment,ragged-right,verbatim,relative=1] 4 \once \override NoteHead #'font-size = #-3 - 4 + + @end lilypond We see the override affects @emph{all} the notes in the chord. @@ -266,8 +315,8 @@ 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 -angle brackets, so to tweak a single note the @code{\tweak} +to note heads these @emph{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. @@ -302,6 +351,27 @@ a ^Black Note that the @code{\tweak} command must be preceded by an articulation mark as if it were an articulation itself. +The @code{\tweak} command must also be used to change the +appearance of one of a set of nested tuplets which begin at the +same musical moment. In the following example, the long tuplet +bracket and the first of the three short brackets begin at the +same musical moment, so any @code{\override} command would apply +to both of them. In the example, @code{\tweak} is used to +distinguish between them. The first @code{\tweak} command +specifies that the long tuplet bracket is to be placed above the +notes and the second one specifies that the tuplet number is to be +printed in red on the first short tuplet bracket. + +@lilypond[quote,ragged-right,verbatim,fragment,relative=2] +\tweak #'direction #up +\times 4/3 { + \tweak #'color #red + \times 2/3 { c8[ c8 c8] } + \times 2/3 { c8[ c8 c8] } + \times 2/3 { c8[ c8 c8] } +} +@end lilypond + You can find more details of the @code{\tweak} command in @ruser{Objects connected to the input}. @@ -519,10 +589,9 @@ repositioned as follows: @noindent Now only the first slur is made heavier. -The @code{\once} command can also be used before @code{\set} -and @code{\unset}, and before the command to be introduced -in the following section -- @code{revert}. - +The @code{\once} command can also be used before the @code{\set} +command. + @subheading Reverting @cindex revert @@ -687,7 +756,7 @@ lyrics which it should affect, like this: @noindent and the lyrics are all printed in italics. -@subheading Specifying context in lyric mode +@subheading Specifying the context in lyric mode @cindex context, specifying in lyric mode In the case of lyrics, if you try specifying the context in the diff --git a/Documentation/user/working.itely b/Documentation/user/working.itely index 4f8820da01..216f577e89 100644 --- a/Documentation/user/working.itely +++ b/Documentation/user/working.itely @@ -73,7 +73,7 @@ templates contain @code{\version} information. We 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. @code{convert-ly} requires you to declare +using a few years ago. @command{convert-ly} requires you to declare which version of LilyPond you used. @item @strong{Include checks}: @ruser{Bar and barnumber checks}, @@ -536,7 +536,7 @@ file with @code{\include "../global.ly"}, which contains @example %%% global.ly -\version "2.11.38" +\version @w{"@version{}"} #(ly:set-option 'point-and-click #f) \include "../init/init-defs.ly" \include "../init/init-layout.ly" diff --git a/Documentation/user/writing-texinfo.txt b/Documentation/user/writing-texinfo.txt index 4c988f754e..7913ed0ad7 100644 --- a/Documentation/user/writing-texinfo.txt +++ b/Documentation/user/writing-texinfo.txt @@ -161,6 +161,19 @@ commands. 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 diff --git a/GNUmakefile.in b/GNUmakefile.in index 9f50bd0707..fb0265a36e 100644 --- a/GNUmakefile.in +++ b/GNUmakefile.in @@ -54,6 +54,7 @@ install-WWW: rsync -rl $(outdir)/offline-root/ $(DESTDIR)$(webdir) $(MAKE) -C Documentation/user local-install-WWW $(MAKE) -C Documentation/user install-info + $(MAKE) -C input/lsr install-info install-help2man: $(MAKE) -C scripts man install-help2man diff --git a/VERSION b/VERSION index 3065c3b02f..53d12d3c2d 100644 --- a/VERSION +++ b/VERSION @@ -1,6 +1,6 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=2 MINOR_VERSION=11 -PATCH_LEVEL=41 +PATCH_LEVEL=42 MY_PATCH_LEVEL= diff --git a/buildscripts/add_html_footer.py b/buildscripts/add_html_footer.py index b410b2a39e..7f30c94edc 100644 --- a/buildscripts/add_html_footer.py +++ b/buildscripts/add_html_footer.py @@ -87,15 +87,21 @@ def build_pages_dict (filelist): def source_links_replace (m, source_val): return 'href="' + os.path.join (source_val, m.group (1)) + '"' -splitted_docs_re = re.compile ('(input/lsr/out-www/snippets|Documentation/user/out-www/(lilypond|music-glossary|lilypond-program|lilypond-learning))/') +splitted_docs_re = re.compile ('(input/lsr/out-www/lilypond-snippets|Documentation/user/out-www/(lilypond|music-glossary|lilypond-program|lilypond-learning))/') -# On systems without symlinks (e.g. Windows), docs are not very usable -# Get rid of symlinks references here +snippets_ref_re = re.compile (r'href="(\.\./)?lilypond-snippets') + +## Windows does not support symlinks. +# This function avoids creating symlinks for splitted HTML manuals # Get rid of symlinks in GNUmakefile.in (local-WWW-post) # this also fixes missing PNGs only present in translated docs -def replace_symlinks_urls (s, prefix): +def hack_urls (s, prefix): if splitted_docs_re.match (prefix): s = re.sub ('(href|src)="(lily-.*?|.*?[.]png)"', '\\1="../\\2"', s) + + # fix Snippets xrefs ad hoc + s = snippets_ref_re.sub ('href="source/input/lsr/lilypond-snippets', s) + source_path = os.path.join (os.path.dirname (prefix), 'source') if not os.path.islink (source_path): return s @@ -262,7 +268,7 @@ def add_html_footer (translation, in_f.close() s = re.sub ('%', '%%', s) - s = replace_symlinks_urls (s, prefix) + s = hack_urls (s, prefix) s = add_header (s) ### add footer diff --git a/buildscripts/lys-to-tely.py b/buildscripts/lys-to-tely.py index c026522434..e2df5a6bc3 100644 --- a/buildscripts/lys-to-tely.py +++ b/buildscripts/lys-to-tely.py @@ -81,15 +81,15 @@ for opt in options: raise Exception ('unknown option: ' + o) def name2line (n): - # UGR s = r""" @ifhtml @html - + @end html @end ifhtml -@lilypondfile[%s]{%s}""" % (n, fragment_options, n) +@lilypondfile[%s]{%s} +""" % (os.path.basename (n), fragment_options, n) return s if files: diff --git a/buildscripts/translations-status.py b/buildscripts/translations-status.py index 494b59b881..0242e973a5 100644 --- a/buildscripts/translations-status.py +++ b/buildscripts/translations-status.py @@ -5,8 +5,8 @@ USAGE: translations-status.py BUILDSCRIPT-DIR LOCALEDIR This script must be run from Documentation/ - Reads template files translations.template.html -and for each LANG in LANGUAGES LANG/translations.template.html + Reads template files translations.template.html.in +and for each LANG in LANGUAGES LANG/translations.template.html.in Writes translations.html.in and for each LANG in LANGUAGES translations.LANG.html.in @@ -17,6 +17,7 @@ import re import string import os import gettext +import subprocess def progress (str): sys.stderr.write (str + '\n') @@ -38,11 +39,17 @@ for l in langdefs.LANGUAGES: 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) @@ -68,6 +75,7 @@ format_table = { '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') } @@ -84,44 +92,42 @@ texi_level = { 'appendix': ('l', 1) } -appendix_number_trans = string.maketrans ('@ABCDEFGHIJKLMNOPQRSTUVWXY','ABCDEFGHIJKLMNOPQRSTUVWXYZ') +appendix_number_trans = string.maketrans ('@ABCDEFGHIJKLMNOPQRSTUVWXY', + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ') 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 () @@ -135,12 +141,6 @@ def percentage_color (percent): 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. @@ -223,21 +223,26 @@ class TranslatedTelyDocument (TelyDocument): '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): @@ -255,13 +260,15 @@ class TranslatedTelyDocument (TelyDocument): 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 () @@ -298,6 +305,7 @@ class MasterTelyDocument (TelyDocument): 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 @@ -338,11 +346,11 @@ class MasterTelyDocument (TelyDocument): 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 () +main_status_page = open ('translations.template.html.in').read () ## TODO #per_lang_status_pages = dict ([(l, open (os.path.join (l, 'translations.template.html')). read ()) @@ -351,7 +359,7 @@ main_status_page = open ('translations.template.html').read () progress ("Generating status pages...") -main_status_html = '

    Last updated %s

    \n' % read_pipe ('LANG= date -u') +main_status_html = '

    Last updated %s

    \n' % read_pipe ('LANG= date -u')[0] main_status_html += '\n'.join ([doc.html_status () for doc in master_docs]) html_re = re.compile ('', re.I) @@ -359,7 +367,7 @@ end_body_re = re.compile ('', re.I) main_status_page = html_re.sub (''' ''', main_status_page) +translations.template.html.in; DO NOT EDIT !-->''', main_status_page) main_status_page = end_body_re.sub (main_status_html + '\n', main_status_page) diff --git a/buildscripts/www_post.py b/buildscripts/www_post.py index e27aeb7d2e..278895aff9 100644 --- a/buildscripts/www_post.py +++ b/buildscripts/www_post.py @@ -82,6 +82,10 @@ for t in targets: if not os.path.exists (dest): os.symlink (p, dest) + ## ad-hoc renaming to make xrefs between PDFs work + os.rename (os.path.join (out_root, 'input/lsr/lilypond-snippets.pdf'), + os.path.join (out_root, 'Documentation/user/lilypond-snippets.pdf')) + # need this for content negotiation with documentation index if 'online' in targets: f = open (os.path.join (target_pattern % 'online', 'Documentation/.htaccess'), 'w') diff --git a/input/lsr/GNUmakefile b/input/lsr/GNUmakefile index 1ca2cbbf52..16946ea380 100644 --- a/input/lsr/GNUmakefile +++ b/input/lsr/GNUmakefile @@ -6,6 +6,16 @@ STEPMAKE_TEMPLATES=documentation texinfo tex LOCALSTEPMAKE_TEMPLATES=lilypond ly EXTRA_DIST_FILES += README $(call src-wildcard,*.snippet-list) +ifneq ($(out),) +MAIN_INFO_DOC = lilypond-snippets +INFO_DOCS = lilypond-snippets +INFO_FILES = $(INFO_DOCS:%=$(outdir)/%.info) +INFO_IMAGES_DIR = lilypond-snippets +DEST_INFO_IMAGES_SUBDIR = input/lsr +endif + +default: + include $(depth)/make/stepmake.make IN_ITELY_FILES = $(call src-wildcard,*-intro.itely) @@ -14,14 +24,27 @@ GENERATED_ITELY_FILES = $(IN_ITELY_FILES:%-intro.itely=$(outdir)/%.itely) $(outdir)/%.itely: %-intro.itely %.snippet-list xargs $(PYTHON) $(buildscript-dir)/lys-to-tely.py -f printfilename,texidoc,verbatim --name=$@ --template=$< < $(filter %.snippet-list, $^) -$(outdir)/snippets.texi: snippets.tely $(GENERATED_ITELY_FILES) - $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BINARY) $(LILYPOND_BOOK_INCLUDES)' --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) $(LILYPOND_BOOK_FLAGS) $< +$(outdir)/lilypond-snippets.texi: $(GENERATED_ITELY_FILES) + +info: $(INFO_FILES) + +ifneq ($(out),www) +# cancel install-info target and $(INFO_FILES) 'default' target +# (there is no lilypond-snippets.info without images) +local-install-info: + +$(INFO_FILES): + true +endif -$(outdir)/snippets-big-page.html: $(outdir)/snippets.texi $(OUT_PNG_IMAGES) - $(MAKEINFO) -I$(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split --no-headers $< +# All web targets, except info image symlinks and info docs are +# installed in non-recursing target from TOP-SRC-DIR +local-install-WWW: local-install-info +local-uninstall-WWW: local-uninstall-info -$(outdir)/snippets/index.html: $(outdir)/snippets.texi $(OUT_PNG_IMAGES) $(OUT_EPS_IMAGES) - mkdir -p $(dir $@) - $(MAKEINFO) -I$(outdir) --output=$(dir $@) --css-include=$(top-src-dir)/Documentation/texinfo.css --html $< +local-clean: + rm -f $(INFO_IMAGES_DIR) -local-WWW: $(outdir)/snippets.pdf $(outdir)/snippets/index.html $(outdir)/snippets-big-page.html +local-WWW: info $(outdir)/lilypond-snippets.pdf \ + $(outdir)/lilypond-snippets/index.html \ + $(outdir)/lilypond-snippets-big-page.html diff --git a/input/lsr/heavily-customized-polymetric-time-signatures.ly b/input/lsr/heavily-customized-polymetric-time-signatures.ly index 0873ab4e5f..32ee2eb564 100644 --- a/input/lsr/heavily-customized-polymetric-time-signatures.ly +++ b/input/lsr/heavily-customized-polymetric-time-signatures.ly @@ -10,32 +10,52 @@ has been included to show the beat of this piece (which is a template of a real balkan song!). " } % begin verbatim -#(define (compound-time one two three four five six seven eight nine ten num) - (markup #:override '(baseline-skip . 0) #:number - (#:line ((#:column (one num)) #:vcenter "+" (#:column (two num)) #:vcenter "+" (#:column (three num)) #:vcenter "+" (#:column (four num)) #:vcenter "+" (#:column (five num)) #:vcenter "+" (#:column (six num)) #:vcenter "+" (#:column (seven num)) #:vcenter "+" (#:column (eight num)) #:vcenter "+" (#:column (nine num)) #:vcenter "+" (#:column (ten num)))))) +#(define (compound-time one two three four five six seven eight nine ten +eleven num) + (markup #:override '(baseline-skip . 0) #:number + (#:line ((#:column (one num)) #:vcenter "+" (#:column (two num)) +#:vcenter "+" (#:column (three num)) #:vcenter "+" (#:column (four num)) +#:vcenter "+" (#:column (five num)) #:vcenter "+" (#:column (six num)) +#:vcenter "+" (#:column (seven num)) #:vcenter "+" (#:column (eight +num)) #:vcenter "+" (#:column (nine num)) #:vcenter "+" (#:column (ten +num)) #:vcenter "+" (#:column (eleven num)))))) melody = { \relative c'' { - \set Staff.instrumentName = "Bb Sop." - \key g \major \time 25/8 - \override Staff.TimeSignature #'stencil = #ly:text-interface::print - \override Staff.TimeSignature #'text = #(compound-time "3" "2" "2" "3" "2" "2" "2" "3" "2" "2" "8" ) - c8[ c c] d4 c8[ c] b[ c b] a4 g fis8[ e d c] b'[ c d] e4-^ fis8[ g] | \break - c,4. d4 c4 d4. c4 d c2 d4. e4-^ d4 | - c4. d4 c4 d4. c4 d c2 d4. e4-^ d4 | \break - c4. d4 c4 d4. c4 d c2 d4. e4-^ d4 | - c4. d4 c4 d4. c4 d c2 d4. e4-^ d4 | \break } + \set Staff.instrumentName = "Bb Sop." + \key g \major \time 25/8 + \override Staff.TimeSignature #'stencil = #ly:text-interface::print + \override Staff.TimeSignature #'text = #(compound-time "3" "2" "2" "3" +"2" "2" "2" "2 " "3" "2" "2" "8" ) + \set Staff.beatGrouping = #'(3 2 2 3 2 2 2 2 3 2 2) + #(override-auto-beam-setting '(end * * 25 8) 3 8) + #(override-auto-beam-setting '(end * * 25 8) 5 8) + #(override-auto-beam-setting '(end * * 25 8) 7 8) + #(override-auto-beam-setting '(end * * 25 8) 10 8) + #(override-auto-beam-setting '(end * * 25 8) 12 8) + #(override-auto-beam-setting '(end * * 25 8) 14 8) + #(override-auto-beam-setting '(end * * 25 8) 16 8) + #(override-auto-beam-setting '(end * * 25 8) 18 8) + #(override-auto-beam-setting '(end * * 25 8) 21 8) + #(override-auto-beam-setting '(end * * 25 8) 23 8) + + c8 c c d4 c8 c b c b a4 g fis8 e d c b' c d e4-^ fis8 g | \break + c,4. d4 c4 d4. c4 d c2 d4. e4-^ d4 | + c4. d4 c4 d4. c4 d c2 d4. e4-^ d4 | \break + c4. d4 c4 d4. c4 d c2 d4. e4-^ d4 | + c4. d4 c4 d4. c4 d c2 d4. e4-^ d4 | \break } } drum = { - \new DrumStaff \drummode - { - \bar "|:" bd4. ^\markup { "Drums" } sn4 bd \bar ":" sn4. bd4 sn \bar ":" - bd sn bd4. sn4 bd \bar ":|" - } + \new DrumStaff \drummode + { + \bar "|:" bd4. ^\markup { "Drums" } sn4 bd \bar ":" sn4. +bd4 sn \bar ":" + bd sn bd4. sn4 bd \bar ":|" + } } { - \melody - \drum + \melody + \drum } diff --git a/input/lsr/lilypond-snippets.tely b/input/lsr/lilypond-snippets.tely new file mode 100644 index 0000000000..7fed3d953f --- /dev/null +++ b/input/lsr/lilypond-snippets.tely @@ -0,0 +1,141 @@ +\input texinfo @c -*- coding: utf-8; mode: texinfo; -*- +@setfilename lilypond-snippets.info +@settitle LilyPond snippets +@documentencoding UTF-8 +@documentlanguage en + +@iftex +@afourpaper +@c don't replace quotes with directed quotes +@tex +\gdef\SETtxicodequoteundirected{Foo} +\gdef\SETtxicodequotebacktick{Bla} +@end tex +@end iftex + +@dircategory GNU LilyPond --- the music typesetter +@direntry +* LilyPond Snippets: (lilypond-snippets). Short tricks, tips, and examples. +@end direntry + +@finalout + +@titlepage +@title LilyPond +@subtitle The music typesetter +@titlefont{Snippets} +@author LilyPond Snippet Repository contributors + +@vskip 20pt + +This document shows a selected set of LilyPond snippets from the +@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository} +(LSR). It is in the public domain. + +We would like to address many thanks to Sebastiano Vigna for maintaining +LSR web site and database, and the University of Milano for hosting LSR. + +Please note that this document is not an exact subset of LSR: some +snippets come from @file{input/new} LilyPond sources directory, and +snippets from LSR are converted through @command{convert-ly}, as LSR is +based on a stable LilyPond version, and this document is for version +@value{version}. + +Snippets are grouped by tags; tags listed in the table of contents match +a section of LilyPond notation manual. Snippets may have several tags, +and not all LSR tags may appear in this document. + +In the HTML version of this document, you can click on the file name +or figure for each example to see the corresponding input file. + +@end titlepage + +@iftex +@contents +@end iftex + +@ifnottex +@node Top +@top LilyPond examples + +This document shows a selected set of LilyPond snippets from the +@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository} +(LSR). It is in the public domain. + +Please note that it is not an exact subset of LSR: some snippets come +from @file{input/new} LilyPond sources directory, and snippets from LSR +are converted through @command{convert-ly}, as LSR is based on a stable +LilyPond version, and this document is for version @value{version}. + +Snippets are grouped by tags; tags listed in the table of contents match +a section of LilyPond notation manual. Snippets may have several tags, +and not all LSR tags may appear in this document. + +In the HTML version of this document, you can click on the file name +or figure for each example to see the corresponding input file. +@end ifnottex + +@c maybe generate/update @menu and @includes automatically? --jm +@menu +Musical notation +* Pitches:: +* Rhythms:: +* Expressive marks:: +* Repeats:: +* Simultaneous notes:: +* Staff notation:: +* Editorial and educational use:: +* Text:: + +Specialist notation +* Vocal music:: +* Chords:: +* Piano:: +* Percussion:: +* Guitar:: +* Strings:: +@c * Bagpipes:: +* Ancient notation:: + +Other collections +* Contexts and engravers:: +* Tweaks and overrides:: +* Paper and layout:: +* Titles:: +* Spacing:: +* MIDI:: +* Templates:: +@end menu + + +@c Please take care of naming every .itely +@c with an existing tag name. + +@include pitches.itely +@include rhythms.itely +@include expressive-marks.itely +@include repeats.itely +@include simultaneous-notes.itely +@include staff-notation.itely +@include editorial-and-educational-use.itely +@include text.itely + +@include vocal-music.itely +@include chords.itely +@include piano-music.itely +@include percussion.itely +@include guitar.itely +@include strings.itely +@c ignore empty section +@c @include bagpipes.itely +@include ancient-notation.itely + +@include contexts-and-engravers.itely +@include tweaks-and-overrides.itely +@include paper-and-layout.itely +@include titles.itely +@include spacing.itely +@include midi.itely +@include template.itely + +@bye diff --git a/input/lsr/modifying-tuplet-bracket-length.ly b/input/lsr/modifying-tuplet-bracket-length.ly new file mode 100644 index 0000000000..b43cfc9ee3 --- /dev/null +++ b/input/lsr/modifying-tuplet-bracket-length.ly @@ -0,0 +1,37 @@ +%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it +%% This file is in the public domain. +\version "2.11.38" + +\header { + lsrtags = "rhythms" + texidoc = " +Tuplet brackets can be made to run to prefatory matter or the next +note. Default tuplet brackets end at the right edge of the final note +of the tuplet; full-length tuplet brackets extend farther to the right, +either to cover all the non-rhythmic notation up to the following note, +or to cover only the whitespace before the next item of notation, be +that a clef, time signature, key signature, or another note. The +example shows how to switch tuplets to full length mode and how to +modify what material they cover. +" } +% begin verbatim +\new RhythmicStaff { + + % Set tuplets to be extendable .. + + \set tupletFullLength = ##t + + % .. to cover all items up to the next note + + \set tupletFullLengthNote = ##t + \time 2/4 + \times 2/3 { c4 c c } + + % .. or to cover just whitespace + + \set tupletFullLengthNote = ##f + \time 4/4 + \times 4/5 { c4 c1 } + \time 3/4 + c4 +} diff --git a/input/lsr/rhythms.snippet-list b/input/lsr/rhythms.snippet-list index 63959b45bc..c6c3483538 100644 --- a/input/lsr/rhythms.snippet-list +++ b/input/lsr/rhythms.snippet-list @@ -1,21 +1,22 @@ altering-the-number-of-stems-in-a-beam.ly adding-beams,-slurs,-ties-etc.-when-using-tuplet-and-non-tuplet-rythms..ly +modifying-tuplet-bracket-length.ly +changing-time-signatures-inside-a-polymetric-section-using--compressmusic.ly +making-an-object-invisible-with-the-transparent-property.ly +manually-controlling-beam-positions.ly +controlling-tuplet-bracket-visibility.ly +adding-drum-parts.ly +rest-styles.ly +skips-in-lyric-mode-2.ly +chant-or-psalms-notation.ly conducting-signs,-measure-grouping-signs.ly heavily-customized-polymetric-time-signatures.ly -skips-in-lyric-mode.ly +compound-time-signatures.ly rhythmic-slashes.ly -skips-in-lyric-mode-2.ly -manually-controlling-beam-positions.ly -chant-or-psalms-notation.ly -changing-time-signatures-inside-a-polymetric-section-using--compressmusic.ly automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly -making-an-object-invisible-with-the-transparent-property.ly automatic-beam-subdivisions.ly -rest-styles.ly +entering-several-tuplets-using-only-one--times-command.ly forcing-rehearsal-marks-to-start-from-a-given-letter-or-number.ly -controlling-tuplet-bracket-visibility.ly beam-across-line-breaks.ly printing-music-with-different-time-signatures.ly -adding-drum-parts.ly -entering-several-tuplets-using-only-one--times-command.ly -compound-time-signatures.ly +skips-in-lyric-mode.ly diff --git a/input/lsr/snippets.tely b/input/lsr/snippets.tely deleted file mode 100644 index 5059eb7014..0000000000 --- a/input/lsr/snippets.tely +++ /dev/null @@ -1,151 +0,0 @@ -\input texinfo @c -*- coding: utf-8; mode: texinfo; -*- -@setfilename snippets.info -@settitle LilyPond snippets -@documentencoding UTF-8 -@documentlanguage en - -@iftex -@afourpaper -@c don't replace quotes with directed quotes -@tex -\gdef\SETtxicodequoteundirected{Foo} -\gdef\SETtxicodequotebacktick{Bla} -@end tex -@end iftex - -@finalout - -@titlepage -@title LilyPond -@subtitle The music typesetter -@titlefont{Snippets} -@author LilyPond Snippet Repository contributors - -@vskip 20pt - -This document shows a selected set of LilyPond snippets from the -@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository} -(LSR). It is in the public domain. - -We would like to address many thanks to Sebastiano Vigna for maintaining -LSR web site and database, and the University of Milano for hosting LSR. - -Please note that this document is not an exact subset of LSR: some -snippets come from @file{input/new} LilyPond sources directory, and -snippets from LSR are converted through @command{convert-ly}, as LSR is -based on a stable LilyPond version, and this document may be for a newer -version (see below). - -Snippets are grouped by tags; tags listed in the table of contents match -a section of LilyPond notation manual. Snippets may have several tags, -and not all LSR tags may appear in this document. - -In the HTML version of this document, you can click on the file name -or figure for each example to see the corresponding input file. - -@lilypond[ragged-right] -\score { - \context Lyrics { - \override Score.RehearsalMark #'self-alignment-X = #LEFT - \override Score.RehearsalMark #'font-size = #-1 - \mark #(ly:export (string-append - "This document is for LilyPond version " (lilypond-version) ".")) - s2 - } - \layout { - indent = 0.0\pt - } -} -@end lilypond -@end titlepage - -@iftex -@contents -@end iftex - -@ifnottex -@node Top -@top LilyPond examples - -This document shows a selected set of LilyPond snippets from the -@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository} -(LSR). It is in the public domain. - -Please note that it is not an exact subset of LSR: some snippets come -from @file{input/new} LilyPond sources directory, and snippets from LSR -are converted through @command{convert-ly}, as LSR is based on a stable -LilyPond version, and this document may be for a newer version (see -below). - -Snippets are grouped by tags; tags listed in the table of contents match -a section of LilyPond notation manual. Snippets may have several tags, -and not all LSR tags may appear in this document. - -In the HTML version of this document, you can click on the file name -or figure for each example to see the corresponding input file. -@end ifnottex - -@c maybe generate/update @menu and @includes automatically? --jm -@menu -Musical notation -* Pitches:: -* Rhythms:: -* Expressive marks:: -* Repeats:: -* Simultaneous notes:: -* Staff notation:: -* Editorial and educational use:: -* Text:: - -Specialist notation -* Vocal music:: -* Chords:: -* Piano:: -* Percussion:: -* Guitar:: -* Strings:: -@c * Bagpipes:: -* Ancient notation:: - -Other collections -* Contexts and engravers:: -* Tweaks and overrides:: -* Paper and layout:: -* Titles:: -* Spacing:: -* MIDI:: -* Templates:: -@end menu - - -@c Please take care of naming every .itely -@c with an existing tag name. - -@include pitches.itely -@include rhythms.itely -@include expressive-marks.itely -@include repeats.itely -@include simultaneous-notes.itely -@include staff-notation.itely -@include editorial-and-educational-use.itely -@include text.itely - -@include vocal-music.itely -@include chords.itely -@include piano-music.itely -@include percussion.itely -@include guitar.itely -@include strings.itely -@c ignore empty section -@c @include bagpipes.itely -@include ancient-notation.itely - -@include contexts-and-engravers.itely -@include tweaks-and-overrides.itely -@include paper-and-layout.itely -@include titles.itely -@include spacing.itely -@include midi.itely -@include template.itely - -@bye diff --git a/input/lsr/time-signature-in-parentheses.ly b/input/lsr/time-signature-in-parentheses.ly index db9ee9eedd..edfa50fd62 100644 --- a/input/lsr/time-signature-in-parentheses.ly +++ b/input/lsr/time-signature-in-parentheses.ly @@ -9,26 +9,17 @@ You may put the time signature in parentheses. " } % begin verbatim tsMarkup = \markup { - \number { - \bracket \column { "2" "4" } - } + \override #'(baseline-skip . 2) \number { + \bracket \column { "2" "4" } + } } \score { - \relative c'' { + \relative c'' { + \override Staff.TimeSignature #'stencil = #ly:text-interface::print + \override Staff.TimeSignature #'text = #tsMarkup + \time 2/4 -% FIXME: Gee, it doesn't work with 2.10 -vv - -%{ - - \override Staff.TimeSignature #'print-function = #Text_interface::print - \override Staff.TimeSignature #'text = #tsMarkup - -%} - - \time 2/4 - - a4 b8 c | - } + a4 b8 c | + } } - diff --git a/input/manual/editorial-headword.ly b/input/manual/editorial-headword.ly index 6022cb4725..2e3b8ff19c 100644 --- a/input/manual/editorial-headword.ly +++ b/input/manual/editorial-headword.ly @@ -1,6 +1,12 @@ \version "2.11.38" \include "english.ly" - +#(set-global-staff-size 15) +\paper{ + ragged-right=##t + line-width=17\cm + indent=0\cm +} + % NR 1.7 Editorial annotations % Beethoven, Op. 31, No. 3 @@ -46,18 +52,7 @@ d'8-2 \staccato | c'4-3 - r8 - r16. - c'32-3 \pp - | - c'8-2 - r16. - c'32 - c'8 - r16. - c'32 - | - c'8 + r4 } % LH Staff @@ -93,18 +88,7 @@ d8-2 \staccato | c4-3 - r8 - r16. - c32-3 - | - c8-2 - r16. - c32 - c8 - r16. - c32 - | - c8 + r4 } >> diff --git a/input/manual/expressive-headword.ly b/input/manual/expressive-headword.ly index 56f873644c..e08844cbc4 100644 --- a/input/manual/expressive-headword.ly +++ b/input/manual/expressive-headword.ly @@ -1,6 +1,12 @@ \version "2.11.38" \include "english.ly" - +#(set-global-staff-size 15) +\paper{ + ragged-right=##t + line-width=17\cm + indent=0\cm +} + % NR 1.3 Expressive marks % L. v. Beethoven, Op. 49 no. 1 @@ -146,6 +152,7 @@ | 4 \fermata + r8 r4 r8 } % LH Staff @@ -251,6 +258,7 @@ | 4 \fermata + r8 r4 r8 } >> diff --git a/input/manual/pitches-headword.ly b/input/manual/pitches-headword.ly index 67e74f8a2b..5bab51ba42 100644 --- a/input/manual/pitches-headword.ly +++ b/input/manual/pitches-headword.ly @@ -1,6 +1,12 @@ \version "2.11.38" \include "english.ly" - +#(set-global-staff-size 15) +\paper{ + ragged-right=##t + line-width=17\cm + indent=0\cm +} + % NR 1.1 Pitches % L. v. Beethoven @@ -46,6 +52,7 @@ | \clef treble 4 %) + r4 r2 } % RH Voice 2 @@ -76,6 +83,7 @@ 2. ) | s4 + r4 r2 } >> @@ -122,6 +130,7 @@ 1 ( \sustainUp | 4 ) + r4 r2 } >> diff --git a/input/manual/repeats-headword.ly b/input/manual/repeats-headword.ly index 16ce69716c..8ec89eb753 100644 --- a/input/manual/repeats-headword.ly +++ b/input/manual/repeats-headword.ly @@ -1,6 +1,12 @@ \version "2.11.38" \include "english.ly" - +#(set-global-staff-size 15) +\paper{ + ragged-right=##t + line-width=17\cm + indent=0\cm +} + % NR 1.7 Repeats % Beethoven, Op. 57 diff --git a/input/manual/rhythms-headword.ly b/input/manual/rhythms-headword.ly index ff2a300f35..81b3176137 100644 --- a/input/manual/rhythms-headword.ly +++ b/input/manual/rhythms-headword.ly @@ -1,6 +1,12 @@ \version "2.11.38" \include "english.ly" - +#(set-global-staff-size 15) +\paper{ + ragged-right=##t + line-width=17\cm + indent=0\cm +} + % NR 1.2 Rhythms % Beethoven, Op. 81a diff --git a/input/manual/simultaneous-headword.ly b/input/manual/simultaneous-headword.ly index ff363992be..766754e067 100644 --- a/input/manual/simultaneous-headword.ly +++ b/input/manual/simultaneous-headword.ly @@ -1,6 +1,12 @@ \version "2.11.38" \include "english.ly" - +#(set-global-staff-size 15) +\paper{ + ragged-right=##t + line-width=17\cm + indent=0\cm +} + % NR 1.5 Simultaneous notes % L. v. Beethoven, Op. 111 @@ -98,6 +104,7 @@ \key ef \major c'''8. [ cs'''8. \f ] \stopTrillSpan + r8. } @@ -281,6 +288,7 @@ \key ef \major r8. r8. + r8. } diff --git a/input/manual/staff-headword.ly b/input/manual/staff-headword.ly index d981a20bbe..90ff24f115 100644 --- a/input/manual/staff-headword.ly +++ b/input/manual/staff-headword.ly @@ -1,6 +1,12 @@ \version "2.11.38" \include "english.ly" - +#(set-global-staff-size 15) +\paper{ + ragged-right=##t + line-width=17\cm + indent=0\cm +} + % NR 1.6 Staff notation % L. v. Beethoven, Op. 106 @@ -157,7 +163,7 @@ R1 * 3/4 \bar "||" - \key d \major + %\key d \major } % LH @@ -230,7 +236,7 @@ R1 * 3/4 \bar "||" - \key d \major + %\key d \major } >> diff --git a/input/manual/text-headword.ly b/input/manual/text-headword.ly index c29327137d..7cbc123f3c 100644 --- a/input/manual/text-headword.ly +++ b/input/manual/text-headword.ly @@ -1,6 +1,12 @@ \version "2.11.38" \include "english.ly" - +#(set-global-staff-size 15) +\paper{ + ragged-right=##t + line-width=17\cm + indent=0\cm +} + % NR 1.8 Text % L. v. Beethoven, Op. 110 diff --git a/input/regression/musicxml/00c-Basics-Durations.xml b/input/regression/musicxml/00c-Basics-Durations.xml index d54502c641..c42439e04b 100644 --- a/input/regression/musicxml/00c-Basics-Durations.xml +++ b/input/regression/musicxml/00c-Basics-Durations.xml @@ -306,6 +306,142 @@ end end + + + + + + + + + C + 5 + + 1792 + 1 + longa + + + + + + + + + C + 5 + + 896 + 1 + breve + + + + + + C + 5 + + 448 + 1 + whole + + + + + + C + 5 + + 224 + 1 + half + + + + + + C + 5 + + 112 + 1 + quarter + + + + + + C + 5 + + 56 + 1 + eighth + + + begin + + + + C + 5 + + 28 + 1 + 16th + + + continue + begin + + + + C + 5 + + 14 + 1 + 32nd + + + continue + continue + begin + + + + C + 5 + + 7 + 1 + 64th + + + continue + continue + continue + begin + + + + C + 5 + + 7 + 1 + 64th + + + end + end + end + end + light-heavy diff --git a/lily/optimal-page-breaking.cc b/lily/optimal-page-breaking.cc index 64a056aaba..3c26c9abe0 100644 --- a/lily/optimal-page-breaking.cc +++ b/lily/optimal-page-breaking.cc @@ -65,7 +65,12 @@ Optimal_page_breaking::solve () min_sys_count -= best.systems_per_page_[page_count - 2]; } else - best = space_systems_on_n_pages (0, page_count, first_page_num); + { + /* todo: the following line will spit out programming errors if the + ideal line spacing doesn't fit on PAGE_COUNT pages */ + best = space_systems_on_n_pages (0, page_count, first_page_num); + min_sys_count = page_count; + } if (page_count == 1) message (_ ("Fitting music on 1 page...")); @@ -86,7 +91,7 @@ Optimal_page_breaking::solve () vsize min_p_count = min_page_count (i, first_page_num); Page_spacing_result cur; - if (min_p_count == page_count) + if (min_p_count == page_count || scm_is_integer (forced_page_count)) cur = space_systems_on_n_pages (i, page_count, first_page_num); else cur = space_systems_on_n_or_one_more_pages (i, page_count-1, first_page_num); diff --git a/lily/rest.cc b/lily/rest.cc index 1e15144839..92e0e6e029 100644 --- a/lily/rest.cc +++ b/lily/rest.cc @@ -188,7 +188,9 @@ Rest::pure_height (SCM smob, SCM start, SCM end) } ADD_INTERFACE (Rest, - "A rest symbol.", + "A rest symbol." + "The property @code{style} can be @code{default}, " + "@code{mensural}, @code{neomensural} or @code{classical}.", /* properties */ diff --git a/lily/stem-tremolo.cc b/lily/stem-tremolo.cc index b91b18fd5a..8960fe64ad 100644 --- a/lily/stem-tremolo.cc +++ b/lily/stem-tremolo.cc @@ -247,11 +247,15 @@ Stem_tremolo::print (SCM grob) } ADD_INTERFACE (Stem_tremolo, - "A beam slashing a stem to indicate a tremolo.", + "A beam slashing a stem to indicate a tremolo. " + "The property @code{style} can be @code{default} or " + "@code{rectangle}.", + /* properties */ "beam-thickness " "beam-width " "flag-count " + "length-fraction " "stem " "style " "slope " diff --git a/make/doclang-rules.make b/make/doclang-rules.make index bed4120fb9..1f4865d009 100644 --- a/make/doclang-rules.make +++ b/make/doclang-rules.make @@ -1,6 +1,3 @@ -# cancel the rule that generates .n[o lilypond images t]exi files -$(outdir)/%.nexi: $(ITELY_FILES) $(ITEXI_FILES) - $(outdir)/%/index.html: $(outdir)/%.texi mkdir -p $(dir $@) -$(MAKEINFO) -P $(outdir) --output=$(outdir)/$* --css-include=$(top-src-dir)/Documentation/texinfo.css --html $< @@ -14,7 +11,7 @@ $(outdir)/%.pdftexi: $(outdir)/%.texi doc-po $(outdir)/%.pdf: $(outdir)/%.pdftexi cd $(outdir); texi2pdf $(TEXI2PDF_FLAGS) $(TEXINFO_PAPERSIZE_OPTION) $(notdir $*).pdftexi -$(OUT_TEXI_FILES): $(ITELY_FILES) +$(OUT_TEXI_FILES): $(ITELY_FILES) $(ITEXI_FILES) $(DEEP_HTML_FILES) $(PDF_FILES): $(ITELY_FILES) $(ITEXI_FILES) diff --git a/make/doclang-targets.make b/make/doclang-targets.make index 09a6face3e..4f4750c9a7 100644 --- a/make/doclang-targets.make +++ b/make/doclang-targets.make @@ -6,13 +6,5 @@ local-WWW: $(DEEP_HTML_FILES) $(PDF_FILES) doc-po $(BIG_PAGE_HTML_FILES) find $(outdir) -name '*.html' | xargs grep -L --label="" 'UNTRANSLATED NODE: IGNORE ME' | sed 's!$(outdir)/!!g' | xargs $(PYTHON) $(buildscript-dir)/mass-link.py --prepend-suffix .$(ISOLANG) hard $(outdir) $(top-build-dir)/Documentation/user/$(outdir) $(TELY_FILES:%.tely=%.pdf) find $(outdir) \( -name 'lily-??????????.png' -o -name 'lily-??????????.ly' \) | sed 's!$(outdir)/!!g' | xargs $(PYTHON) $(buildscript-dir)/mass-link.py hard $(outdir) $(top-build-dir)/Documentation/user/$(outdir) -local-WWW-clean: deep-WWW-clean - -deep-WWW-clean: - rm -rf $(outdir)/lilypond* - -web-clean: clean - $(MAKE) out=www local-WWW-clean - doc-po: $(MAKE) -C $(depth)/Documentation/po out=www messages diff --git a/make/lilypond-vars.make b/make/lilypond-vars.make index e7abca9b7c..45ed186353 100644 --- a/make/lilypond-vars.make +++ b/make/lilypond-vars.make @@ -32,7 +32,14 @@ LILYPOND_JOBS=$(if $(CPU_COUNT),-djob-count=$(CPU_COUNT),) LILYPOND_BOOK_LILYPOND_FLAGS=-dbackend=eps --formats=ps,png,pdf $(LILYPOND_JOBS) -dinclude-eps-fonts -dgs-load-fonts --header=texidoc -I $(top-src-dir)/input/manual -dcheck-internal-types -ddump-signatures -danti-alias-factor=$(ANTI_ALIAS_FACTOR) LILYPOND_BOOK_VERBOSE = --verbose LILYPOND_BOOK_INFO_IMAGES_DIR = $(if $(INFO_IMAGES_DIR),--info-images-dir=$(INFO_IMAGES_DIR),) -LILYPOND_BOOK_FLAGS = --process="$(LILYPOND_BINARY) $(LILYPOND_BOOK_LILYPOND_FLAGS)" $(LILYPOND_BOOK_VERBOSE) $(LILYPOND_BOOK_INFO_IMAGES_DIR) +LILYPOND_BOOK_FLAGS = $(LILYPOND_BOOK_VERBOSE) $(LILYPOND_BOOK_INFO_IMAGES_DIR) + +ifeq ($(out),) +LILYPOND_BOOK_PROCESS = true +else +LILYPOND_BOOK_PROCESS = $(LILYPOND_BINARY) +endif + TEXINPUTS=$(top-src-dir)/tex/:: export TEXINPUTS diff --git a/make/ly-rules.make b/make/ly-rules.make index 75a5eeebe5..28b46f7b9b 100644 --- a/make/ly-rules.make +++ b/make/ly-rules.make @@ -1,36 +1,21 @@ .SUFFIXES: .doc .tely .texi .ly - $(outdir)/%.latex: %.doc - $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BINARY) $(LILYPOND_BOOK_INCLUDES)' --output=$(outdir) $(LILYPOND_BOOK_FLAGS) $< - -ifneq ($(out),) + $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BOOK_PROCESS) $(LILYPOND_BOOK_INCLUDES) $(LILYPOND_BOOK_LILYPOND_FLAGS)' --output=$(outdir) $(LILYPOND_BOOK_FLAGS) $< # don't do ``cd $(outdir)'', and assume that $(outdir)/.. is the src dir. # it is not, for --srcdir builds $(outdir)/%.texi: %.tely - $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BINARY) $(LILYPOND_BOOK_INCLUDES)' --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) $(LILYPOND_BOOK_FLAGS) $< + $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BOOK_PROCESS) $(LILYPOND_BOOK_INCLUDES) $(LILYPOND_BOOK_LILYPOND_FLAGS)' --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) $(LILYPOND_BOOK_FLAGS) $< $(outdir)/%.texi: $(outdir)/%.tely - $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BINARY) $(LILYPOND_BOOK_INCLUDES)' --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) $(LILYPOND_BOOK_FLAGS) $< + echo $(LILYPOND_BOOK_PROCESS) + $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BOOK_PROCESS) $(LILYPOND_BOOK_INCLUDES) $(LILYPOND_BOOK_LILYPOND_FLAGS)' --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) $(LILYPOND_BOOK_FLAGS) $< # # DON'T REMOVE SOURCE FILES, otherwise the .TEXI ALWAYS OUT OF DATE. # rm -f $< -else # out is empty - -# nexi: n[o-lilypond t]exi -# for plain info doco: don't run lilypond -$(outdir)/%.nexi: %.tely - rm -f $(outdir)/$*.texi - $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) $(LILYPOND_BOOK_FLAGS) --process='true' $< - mv -f $(outdir)/$*.texinfo $@ 2>/dev/null || mv -f $(outdir)/$*.texi $@ - -$(outdir)/%.info: $(outdir)/%.nexi - $(MAKEINFO) -I $(outdir) --output=$(outdir)/$(*F).info $< - -endif # out is empty $(outdir)/%.html.omf: %.tely $(call GENERATE_OMF,html) diff --git a/make/ly-vars.make b/make/ly-vars.make index d355969130..e27b270ad8 100644 --- a/make/ly-vars.make +++ b/make/ly-vars.make @@ -18,3 +18,4 @@ EXTRA_DIST_FILES +=$(TELY_FILES) $(LY_FILES) $(ITEXI_FILES) $(ITELY_FILES) $(ILY DVIPS_FLAGS= -h $(subst .pdf,.psfonts,$(subst .ps,.psfonts, $(notdir $@ ))) + diff --git a/mf/GNUmakefile b/mf/GNUmakefile index 41962e0c59..eb37ee3093 100644 --- a/mf/GNUmakefile +++ b/mf/GNUmakefile @@ -23,8 +23,7 @@ BRACES = a b c d e f g h i OTF_FILES = $(STAFF_SIZES:%=$(outdir)/emmentaler-%.otf) \ $(outdir)/aybabtu.otf -PE_SCRIPTS = $(STAFF_SIZES:%=$(outdir)/emmentaler-%.pe) \ - $(STAFF_SIZES:%=$(outdir)/emmentaler-%.dep) +PE_SCRIPTS = $(STAFF_SIZES:%=$(outdir)/emmentaler-%.pe) OTF_TABLES = $(STAFF_SIZES:%=$(outdir)/feta%.otf-table) \ $(BRACES:%=$(outdir)/feta-braces-%.otf-table) FETA_FONTS = $(FETA_MF_FILES:.mf=) @@ -174,12 +173,11 @@ tree-regen: $(outdir)/%.lisp \ $(outdir)/%.otf-gtable \ $(outdir)/%.enc \ -$(outdir)/%.dep: $(outdir)/%.log +$(outdir)/%.pe: $(outdir)/%.log $(PYTHON) $(buildscript-dir)/mf-to-table.py \ --global-lisp=$(outdir)/$( #\'(a b c)')) def conv (str): def replace (match): - return '\\key %s;' % string.lower (match.group (1)) + return '\\key %s;' % match.group (1).lower () str = re.sub ("\\\\key ([^;]+);", replace, str) return str @@ -619,7 +619,7 @@ def regularize_id (str): elif x not in string.letters: x = 'x' elif x in string.lowercase and lastx == '_': - x = string.upper (x) + x = x.upper () s = s + x lastx = x return s @@ -991,7 +991,7 @@ def conv(str): 'set-point-and-click!' ] - origre = r'\b(%s)' % string.join (changed, '|') + origre = r'\b(%s)' % '|'.join (changed) str = re.sub (origre, r'ly:\1',str) str = re.sub ('set-point-and-click!', 'set-point-and-click', str) @@ -1034,7 +1034,7 @@ def conv(str): 'sfz', ] - origstr = string.join (kws, '|') + origstr = '|'.join (kws) str = re.sub (r'([^_^-])\\(%s)\b' % origstr, r'\1-\\\2', str) return str conversions.append (((1,7,6), conv, 'note\\script -> note-\script')) @@ -1296,9 +1296,8 @@ def sub_chord (m): ## end of while <> - suffix = string.join (slur_strs, '') + string.join (pslur_strs, - '') \ - + string.join (dyns, '') + suffix = ''.join (slur_strs) + ''.join (pslur_strs) \ + + ''.join (dyns) return '@STARTCHORD@%s@ENDCHORD@%s%s' % (str , dur_str, suffix) @@ -1651,7 +1650,7 @@ conversions.append (((1,9,8), conv, """dash-length -> dash-fraction""")) def conv (str): def func(match): - return "#'font-size = #%d" % (2*string.atoi (match.group (1))) + return "#'font-size = #%d" % (2*int (match.group (1))) str =re.sub (r"#'font-relative-size\s*=\s*#\+?([0-9-]+)", func, str) str =re.sub (r"#'font-family\s*=\s*#'ancient", @@ -1711,8 +1710,8 @@ def conv (str): def sub_note (match): dur = '' - log = string.atoi (match.group (1)) - dots = string.atoi (match.group (2)) + log = int (match.group (1)) + dots = int (match.group (2)) if log >= 0: dur = '%d' % (1 << log) diff --git a/python/fontextract.py b/python/fontextract.py index fa73a9961d..ee9505f37f 100644 --- a/python/fontextract.py +++ b/python/fontextract.py @@ -3,7 +3,6 @@ import re import getopt import sys import os -import string dsr_font_regex = re.compile ('%%DocumentSuppliedResources: font (.*)') begin_font_regex = re.compile ('%%BeginFont: (.*)') @@ -66,7 +65,7 @@ def extract_fonts_from_file (extract_from_this, font_dict, filename): in_font = 0 if curr_font_name in extract_from_this: - font_dict[curr_font_name] = string.join (curr_font, '') + font_dict[curr_font_name] = ''.join (curr_font) if verbose: sys.stderr.write (_('Extracted %s') % curr_font_name + '\n') @@ -79,7 +78,7 @@ def extract_fonts_from_file (extract_from_this, font_dict, filename): if extract_from_this: sys.stderr.write ("Failed to extract %s from %s\n" - % (string.join (extract_from_this, ', '), filename)) + % (', '.join (extract_from_this), filename)) def write_extracted_fonts (output_file_name, font_dict): if verbose: diff --git a/python/lilylib.py b/python/lilylib.py index cfa5e67d0a..f9cbff2c60 100644 --- a/python/lilylib.py +++ b/python/lilylib.py @@ -11,7 +11,6 @@ import glob import os import re import shutil -import string import sys import optparse @@ -185,7 +184,7 @@ def strip_extension (f, ext): def search_exe_path (name): p = os.environ['PATH'] - exe_paths = string.split (p, ':') + exe_paths = p.split (':') for e in exe_paths: full = os.path.join (e, name) if os.path.exists (full): diff --git a/python/musicxml.py b/python/musicxml.py index 7c398e1e5d..0e63c5ecdb 100644 --- a/python/musicxml.py +++ b/python/musicxml.py @@ -953,9 +953,8 @@ def get_class (name): def lxml_demarshal_node (node): name = node.tag - # TODO: This is a nasty hack, but I couldn't find any other way to check - # if the given node is a comment node (class _Comment): - if name is None or re.match (u"^$", node.__repr__()): + # Ignore comment nodes, which are also returned by the etree parser! + if name is None or node.__class__.__name__ == "_Comment": return None klass = get_class (name) py_node = klass() diff --git a/scripts/convert-ly.py b/scripts/convert-ly.py index e5efca01d4..708214d315 100644 --- a/scripts/convert-ly.py +++ b/scripts/convert-ly.py @@ -12,7 +12,6 @@ import os import sys -import string import re """ @@ -92,19 +91,26 @@ def get_option_parser (): p.add_option ('-e', '--edit', help=_ ("edit in place"), action='store_true') + p.add_option ('-n', '--no-version', help=_ ("do not add \\version command if missing"), action='store_true', dest='skip_version_add', default=False) + + p.add_option ('-c', '--current-version', + help=_ ("force updating \\version number to %s") % program_version, + action='store_true', + dest='force_current_version', + default=False) p.add_option ("-s", '--show-rules', - help=_ ("show rules [default: --from=0, --to=@TOPLEVEL_VERSION@]"), + help=_ ("show rules [default: --from=0, --to=%s]") % program_version, dest='show_rules', action='store_true', default=False) p.add_option ('-t', '--to', - help=_ ("convert to VERSION [default: @TOPLEVEL_VERSION@]"), + help=_ ("convert to VERSION [default: %s]") % program_version, metavar=_ ('VERSION'), action='store', dest="to_version", @@ -120,10 +126,10 @@ def get_option_parser (): def str_to_tuple (s): - return tuple (map (int, string.split (s, '.'))) + return tuple ([int(n) for n in s.split ('.')]) def tup_to_str (t): - return string.join (map (lambda x: '%s' % x, list (t)), '.') + return '.'.join (['%s' % x for x in t]) def version_cmp (t1, t2): for x in [0, 1, 2]: @@ -173,9 +179,8 @@ string.""" -def guess_lilypond_version (filename): - s = open (filename).read () - m = lilypond_version_re.search (s) +def guess_lilypond_version (input): + m = lilypond_version_re.search (input) if m: return m.group (1) else: @@ -191,12 +196,19 @@ def do_one_file (infile_name): ly.stderr_write (_ ("Processing `%s\'... ") % infile_name) sys.stderr.write ('\n') + if infile_name: + infile = open (infile_name, 'r') + input = infile.read () + infile.close () + else: + input = sys.stdin.read () + from_version = None to_version = None if global_options.from_version: from_version = global_options.from_version else: - guess = guess_lilypond_version (infile_name) + guess = guess_lilypond_version (input) if not guess: raise UnknownVersion () from_version = str_to_tuple (guess) @@ -207,16 +219,12 @@ def do_one_file (infile_name): to_version = latest_version () - if infile_name: - infile = open (infile_name, 'r') - else: - infile = sys.stdin - - - (last, result) = do_conversion (infile.read (), from_version, to_version) - infile.close () + (last, result) = do_conversion (input, from_version, to_version) if last: + if global_options.force_current_version and last == to_version: + last = str_to_tuple (program_version) + newversion = r'\version "%s"' % tup_to_str (last) if lilypond_version_re.search (result): result = re.sub (lilypond_version_re_str, diff --git a/scripts/lilypond-book.py b/scripts/lilypond-book.py index dee8223de6..6088677516 100644 --- a/scripts/lilypond-book.py +++ b/scripts/lilypond-book.py @@ -197,6 +197,7 @@ default_ly_options = { 'alt': "[image of music]" } # # Is this pythonic? Personally, I find this rather #define-nesque. --hwn # +ADDVERSION = 'addversion' AFTER = 'after' BEFORE = 'before' DOCBOOK = 'docbook' @@ -514,7 +515,8 @@ simple_options = [ VERBATIM, FONTLOAD, FILENAME, - ALT + ALT, + ADDVERSION ] ly_options = { @@ -679,9 +681,14 @@ output = { ''', VERBATIM: r'''@exampleindent 0 -@verbatim +%(version)s@verbatim %(verb)s@end verbatim ''', + + ADDVERSION: r'''@example +\version @w{"@version{}"} +@end example +''' }, } @@ -1244,20 +1251,13 @@ class Lilypond_snippet (Snippet): str = '' if PRINTFILENAME in self.option_dict: base = self.basename () - filename = self.substring ('filename') - str = output[global_options.format][PRINTFILENAME] % vars () + filename = os.path.basename (self.substring ('filename')) + str = output[format][PRINTFILENAME] % vars () return str def output_texinfo (self): - str = '' - if self.output_print_filename (TEXINFO): - str += ('@html\n' - + self.output_print_filename (HTML) - + '\n@end html\n') - str += ('@tex\n' - + self.output_print_filename (LATEX) - + '\n@end tex\n') + str = self.output_print_filename (TEXINFO) base = self.basename () if TEXIDOC in self.option_dict: texidoc = base + '.texidoc' @@ -1266,10 +1266,11 @@ class Lilypond_snippet (Snippet): substr = '' if VERBATIM in self.option_dict: + version = '' + if ADDVERSION in self.option_dict: + version = output[TEXINFO][ADDVERSION] verb = self.verb_ly () - substr += output[TEXINFO][VERBATIM] % vars () - if not QUOTE in self.option_dict: - substr = output[TEXINFO][NOQUOTE] % {'str':substr} + substr = output[TEXINFO][VERBATIM] % vars () substr += self.output_info () if LILYQUOTE in self.option_dict: substr = output[TEXINFO][QUOTE] % {'str':substr} @@ -1643,10 +1644,8 @@ def write_if_updated (file_name, lines): progress ('\n') # this prevents make from always rerunning lilypond-book: - # .texi target must be touched in order to be up to date - if global_options.format == 'texinfo': - os.utime (file_name, None) - return + # output file must be touched in order to be up to date + os.utime (file_name, None) except: pass diff --git a/stepmake/stepmake/texinfo-rules.make b/stepmake/stepmake/texinfo-rules.make index fbf05402d6..88a4fe47a2 100644 --- a/stepmake/stepmake/texinfo-rules.make +++ b/stepmake/stepmake/texinfo-rules.make @@ -26,7 +26,7 @@ $(outdir)/%.info-images-dir.dep: $(outdir)/%.texi else $(outdir)/.info-images-dir.dep: - true + touch $@ endif diff --git a/stepmake/stepmake/texinfo-targets.make b/stepmake/stepmake/texinfo-targets.make index 875a5e929c..488b81f24b 100644 --- a/stepmake/stepmake/texinfo-targets.make +++ b/stepmake/stepmake/texinfo-targets.make @@ -11,8 +11,6 @@ check-info: texinfo-all-menus-update ## info stuff local-install: install-info local-uninstall: uninstall-info -local-install-info: -local-uninstall-info: install-info: local-install-info uninstall-info: local-uninstall-info @@ -22,6 +20,79 @@ install-info: $(INFO_FILES) uninstall-info: $(INFO_INSTALL_COMMAND) local-uninstall +ifeq ($(INFO_FILES),) +local-install-info: +local-uninstall-info: + +else # $(INFO_FILES) non empty +# There are two modes for info: with and without images. +ifeq ($(out),www) + +# This builds all .info targets with images, in out-www. +# Viewable with a recent Emacs, doing: C-u C-h i out-www/lilypond.info + +local-install-info: info + -$(INSTALL) -d $(DESTDIR)$(infodir) +ifneq ($(patsubst %/local,%,$(DESTDIR)$(prefix)),/usr) +## Can not have absolute symlinks because some binary packages build schemes +## install files in nonstandard root. Best we can do is to notify the +## builder or packager. + @echo + @echo "***************************************************************" + @echo "Please add or update the LilyPond direntries, do" + @echo + @echo " install-info --info-dir=$(infodir) $(outdir)/$(MAIN_INFO_DOC).info" + @echo + @echo "For images in the INFO docs to work, do: " + @echo + @echo " (cd $(infodir) && ln -sfT ../doc/lilypond/html/$(DEST_INFO_IMAGES_SUBDIR) $(INFO_IMAGES_DIR))" + @echo "or add something like that to the postinstall script." + @echo +else # installing directly into standard /usr/... + -$(INSTALL) -d $(DESTDIR)$(infodir) + $(foreach f,$(INFO_FILES),install-info --remove --info-dir=$(infodir) $(f) ; )true + install-info --info-dir=$(infodir) $(outdir)/$(MAIN_INFO_DOC).info + cd $(infodir) && ln -sfT $(webdir)/$(DEST_INFO_IMAGES_SUBDIR) $(INFO_IMAGES_DIR) +endif # installing directly into standard /usr/... + +local-uninstall-WWW: + rm -f $(infodir)/$(INFO_IMAGES_DIR) + +else # out!=www + +local-install-info: info + -$(INSTALL) -d $(DESTDIR)$(package_infodir) +ifneq ($(patsubst %/local,%,$(DESTDIR)$(prefix)),/usr) +## Can not have absolute symlinks because some binary packages build schemes +## install files in nonstandard root. Best we can do is to notify the +## builder or packager. + @echo + @echo "***************************************************************" + @echo "Please add or update the LilyPond direntries, do" + @echo + @echo " install-info --info-dir=$(infodir) out/$(MAIN_INFO_DOC).info" + @echo + @echo "For images in the INFO docs to work, do" + @echo + @echo " make out=www install-info " + @echo + @echo "and read the extra instructions." + @echo +else # installing directly into standard /usr/... + -$(INSTALL) -d $(DESTDIR)$(infodir) + $(foreach f,$(INFO_FILES),install-info --remove --info-dir=$(infodir) $(f) ; )true + install-info --info-dir=$(infodir) $(outdir)/$(MAIN_INFO_DOC).info + @echo + @echo "***************************************************************" + @echo "For images in the INFO docs to work, do" + @echo + @echo " make out=www install-info " + @echo +endif # installing into standard /usr/* root# installing into /usr/... + +endif # out!=www + +endif # $(INFO_FILES) non empty TEXINFO_ALL_MENUS_UPDATE_EL ='\ (let ((error nil)\ diff --git a/stepmake/stepmake/texinfo-vars.make b/stepmake/stepmake/texinfo-vars.make index d36ff83b81..4ee7cefa47 100644 --- a/stepmake/stepmake/texinfo-vars.make +++ b/stepmake/stepmake/texinfo-vars.make @@ -9,9 +9,10 @@ OUTTXT_FILES += $(addprefix $(outdir)/,$(TEXI_FILES:.texi=.txt)) 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 +MAKEINFO_FLAGS = --enable-encoding -D 'version $(TOPLEVEL_VERSION)' MAKEINFO = LANG= $(MAKEINFO_PROGRAM) $(MAKEINFO_FLAGS) diff --git a/stepmake/stepmake/topdocs-targets.make b/stepmake/stepmake/topdocs-targets.make index 0300803f84..5c4777ec92 100644 --- a/stepmake/stepmake/topdocs-targets.make +++ b/stepmake/stepmake/topdocs-targets.make @@ -1,6 +1,6 @@ default: local-doc -local-WWW: $(HTML_FILES) $(PDF_FILES) $(TO_TOP_FILES) +local-WWW: $(HTML_FILES) $(PDF_FILES) -make-txt-files: $(addprefix $(outdir)/,$(addsuffix .txt,$(TO_TOP_FILES))) +make-txt-files: $(TO_TOP_FILES) diff --git a/stepmake/stepmake/topdocs-vars.make b/stepmake/stepmake/topdocs-vars.make index 336c26b984..73adc87046 100644 --- a/stepmake/stepmake/topdocs-vars.make +++ b/stepmake/stepmake/topdocs-vars.make @@ -1,2 +1,2 @@ -TO_TOP_FILES=$(addprefix $(outdir)/, $(README_TOP_FILES)) +TO_TOP_FILES=$(addprefix $(outdir)/, $(addsuffix .txt, $(README_TOP_FILES))) diff --git a/stepmake/stepmake/toplevel-targets.make b/stepmake/stepmake/toplevel-targets.make index 8878b31ec1..28628efb02 100644 --- a/stepmake/stepmake/toplevel-targets.make +++ b/stepmake/stepmake/toplevel-targets.make @@ -29,7 +29,7 @@ $(package-icon): do-top-doc: - -$(MAKE) -C Documentation/topdocs/ TO_TOP_FILES="$(TOPDOC_FILES)" make-txt-files + -$(MAKE) -C Documentation/topdocs/ README_TOP_FILES="$(TOPDOC_FILES)" make-txt-files $(README_TXT_FILES): do-top-doc diff --git a/tex/texinfo.tex b/tex/texinfo.tex index c49e670b02..790673c3e5 100644 --- a/tex/texinfo.tex +++ b/tex/texinfo.tex @@ -3,11 +3,11 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2007-09-03.05} +\def\texinfoversion{2008-03-07.10} % -% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 2007, +% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, -% 2007 Free Software Foundation, Inc. +% 2007, 2008 Free Software Foundation, Inc. % % This texinfo.tex file is free software: you can redistribute it and/or % modify it under the terms of the GNU General Public License as @@ -97,6 +97,7 @@ \let\ptexslash=\/ \let\ptexstar=\* \let\ptext=\t +\let\ptextop=\top % If this character appears in an error message or help string, it % starts a new line in the output. @@ -916,15 +917,19 @@ where each line of input produces a line of output.} \temp } -% @include file insert text of that file as input. +% @include FILE -- \input text of FILE. % \def\include{\parseargusing\filenamecatcodes\includezzz} \def\includezzz#1{% \pushthisfilestack \def\thisfile{#1}% {% - \makevalueexpandable - \def\temp{\input #1 }% + \makevalueexpandable % we want to expand any @value in FILE. + \turnoffactive % and allow special characters in the expansion + \edef\temp{\noexpand\input #1 }% + % + % This trickery is to read FILE outside of a group, in case it makes + % definitions, etc. \expandafter }\temp \popthisfilestack @@ -1642,11 +1647,17 @@ output) for that.)} }% } -% % PDF CMaps. See also LaTeX's t1.cmap. % -% \cmapOT1 -\ifpdf +% do nothing with this by default. +\expandafter\let\csname cmapOT1\endcsname\gobble +\expandafter\let\csname cmapOT1IT\endcsname\gobble +\expandafter\let\csname cmapOT1TT\endcsname\gobble + +% if we are producing pdf, and we have \pdffontattr, then define cmaps. +% (\pdffontattr was introduced many years ago, but people still run +% older pdftex's; it's easy to conditionalize, so we do.) +\ifpdf \ifx\pdffontattr\undefined \else \begingroup \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap @@ -1894,11 +1905,7 @@ end \expandafter\edef\csname cmapOT1TT\endcsname#1{% \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% }% -\else - \expandafter\let\csname cmapOT1\endcsname\gobble - \expandafter\let\csname cmapOT1IT\endcsname\gobble - \expandafter\let\csname cmapOT1TT\endcsname\gobble -\fi +\fi\fi % Set the font macro #1 to the font named #2, adding on the @@ -1912,7 +1919,7 @@ end } % This is what gets called when #5 of \setfont is empty. \let\cmap\gobble - +% emacs-page end of cmaps % Use cm as the default font prefix. % To specify the font prefix, you must define \fontprefix @@ -2558,6 +2565,13 @@ end \let\env=\code \let\command=\code +% @clicksequence{File @click{} Open ...} +\def\clicksequence#1{\begingroup #1\endgroup} + +% @clickstyle @arrow (by default) +\parseargdef\clickstyle{\def\click{#1}} +\def\click{\arrow} + % @uref (abbreviation for `urlref') takes an optional (comma-separated) % second argument specifying the text to display and an optional third % arg as text to display instead of (rather than in addition to) the url @@ -2765,6 +2779,7 @@ end \chardef\quoteleft=`\` \chardef\quoteright=`\' + \message{page headings,} \newskip\titlepagetopglue \titlepagetopglue = 1.5in @@ -5649,14 +5664,15 @@ end % @point{}, @result{}, @expansion{}, @print{}, @equiv{}. % -% Since these characters are used in examples, it should be an even number of +% Since these characters are used in examples, they should be an even number of % \tt widths. Each \tt character is 1en, so two makes it 1em. % \def\point{$\star$} -\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}} -\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}} +\def\arrow{\leavevmode\raise.05ex\hbox to 1em{\hfil$\rightarrow$\hfil}} +\def\result{\leavevmode\raise.05ex\hbox to 1em{\hfil$\Rightarrow$\hfil}} +\def\expansion{\leavevmode\hbox to 1em{\hfil$\mapsto$\hfil}} \def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}} -\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}} +\def\equiv{\leavevmode\hbox to 1em{\hfil$\ptexequiv$\hfil}} % The @error{} command. % Adapted from the TeXbook's \boxit. @@ -5714,6 +5730,7 @@ end \let\/=\ptexslash \let\*=\ptexstar \let\t=\ptext + \expandafter \let\csname top\endcsname=\ptextop % outer \let\frenchspacing=\plainfrenchspacing % \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%