tags
test-output-distance
Documentation/user/lilypond
+input/lsr/lilypond-snippets
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
In diesem Handbuch: siehe @ref{Clef}.
-@refbugs
+@knownissues
Der mensurale G-Schlüssel ist als Petrucci-G-schlüssel deklariert.
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.
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
}
@end lilypond
-@refbugs
+@knownissues
Einige Artikulationszeichen sind vertikal zu dich an den entsprechenden
Notenköpfen gesetzt.
@lilypondfile[quote,ragged-right]{divisiones.ly}
-@refcommands
+@predefined
@funindex \virgula
@code{\virgula},
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
}
@end lilypond
-@refbugs
+@knownissues
Die horizontale Positionierung ist sehr schlecht.
}
@end lilypond
-@refcommands
+@predefined
Folgende Notenpräfixe sind unterstützt:
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
benutzt werden.
-@refbugs
+@knownissues
Wenn Bassziffern über dem Notensystem mit Ergänzungslinien und
@code{implicitBassFigures} benutzt werden, kann es vorkommen, dass
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,
@cindex Akkorde, Jazz
-@refcommands
+@predefined
@funindex \germanChords
@code{\germanChords},
@file{scm/@/chord@/-entry@/.scm}.
-@refbugs
+@knownissues
Akkordsymbole werden nur von den Tonhöhenbezeichnungen bestimmt.
Akkordumkehrungen sind nicht definiert, noch werden Bassnoten
für ganze Noten und Pausen werden sie erzeugt, aber unsichtbar
gemacht.
-@refcommands
+@predefined
@funindex \stemUp
@code{\stemUp} (Hälse nach oben),
Programmreferenz: @internalsref{Script}.
-@refbugs
+@knownissues
Diese Zeichen erscheinen zwar im Druck, haben aber keine Auswirkung
auf die produzierte MIDI-Datei.
@noindent
eingesetzt werden.
-@refcommands
+@predefined
@funindex \dynamicUp
@code{\dynamicUp},
@end lilypond
-@refcommands
+@predefined
@funindex \tieUp
Programmreferenz: @internalsref{Tie}.
-@refbugs
+@knownissues
Der Wechsel zwischen Systemen bei aktiver Ãœberbindung produziert keinen
gekrümmten Bogen.
@end lilypond
-@refcommands
+@predefined
@funindex \slurUp
@code{\slurUp},
Es können keine simultanen Phrasierungsbögen gesetzt werden.
-@refcommands
+@predefined
@funindex \phrasingSlurUp
@code{\phrasingSlurUp},
-@refbugs
+@knownissues
Text über der Linie (wie etwa @emph{gliss.}) wird nicht unterstützt.
@c TODO: cross-voice arpeggio example?
@c such an example is already in LSR -J.Mandereau
-@refcommands
+@predefined
@code{\arpeggio},
@funindex \arpeggioUp
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
ohne Hals in Klammern gesetzt.
-@refcommands
+@predefined
@code{\startTrillSpan},
@funindex \startTrillSpan
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.
definiert.
Programmreferenz: @internalsref{Tab_note_heads_engraver}.
-@refbugs
+@knownissues
Spezialeffekte für Gitarren sind noch nicht implementiert.
@end ignore
+@macro version
+@value{version}
+@end macro
+
+
@c ***** Displaying text *****
@c we need this since @q{\} doesn't work with makeinfo 4.8 --
@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
@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
@c **** Links and references ****
+@c obsolete
@c usage: @lsr{ancient,custodes.ly}
@macro lsr{DIR,TEXT}
@ifhtml
@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\}/}
@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}
@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
Programmreferenz: @internalsref{DrumStaff}, @internalsref{DrumVoice}.
-@refbugs
+@knownissues
Weil in den allgemeinen MIDI-Definitionen kein Rimshot enthalten ist,
wird sidestick für diesen Zweck benutzt.
* Cross staff stems::
@end menu
-@refbugs
+@knownissues
Dynamische Zeichen werden nicht automatisch mittig notiert, aber
dafür gibt es Lösungen, vgl. die
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.
Programmreferenz: @internalsref{VoiceFollower}.
-@refcommands
+@predefined
@funindex \showStaffSwitch
@code{\showStaffSwitch},
-@refbugs
+@knownissues
Es gibt keine allgemein anerkannten Standards für die
Notation von Dreiviertelton-Erniedrigungszeichen. LilyPonds
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
@lsr{repeats,volta@/-multi@/-staff@/.ly}.
-@refbugs
+@knownissues
@cindex Wiederholung, mehrdeutig
@end lilypond
-@refbugs
+@knownissues
Tremolos, die auf diese Weise notiert werden, werden nicht in die
MIDI-Datei aufgenommen.
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
}
@end lilypond
-@refcommands
+@predefined
@funindex \tupletUp
@code{\tupletUp},
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.
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
@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
dem @code{\remove}-Befehl entfernen.
-@refbugs
+@knownissues
Nicht alle Notenwerte (besonders wenn sie andere rhythmische
Aufteilungen beinhalten) können exakt durch normale Noten und
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
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
@end lilypond
-@refcommands
+@predefined
@funindex \oneVoice
@code{\oneVoice},
@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
@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.
@end menu
-
@node Inside the staff
@subsection Inside the staff
@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
@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}.
@node Parentheses
-@unnumberedsubsubsec Parentheses
+@subsubsection Parentheses
@cindex fantasma, notas
@cindex notas fantasma
@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
@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.
@node Grid lines
-@unnumberedsubsubsec Grid lines
+@subsubsection Grid lines
Se pueden dibujar lÃneas verticales, sincronizadas con las notas, entre
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}.
+
+
@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.
@node Expressive marks
@section Expressive marks
+@lilypondfile[quote,ragged-right,line-width=16\cm,staffsize=16]
+{expressive-headword.ly}
+
@menu
* Attached to notes::
* Curves::
@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
@node Dynamics
-@unnumberedsubsubsec Dynamics
+@subsubsection Dynamics
@cindex Dynamics
@funindex \pppp
@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' <c' e' g'> ~ <c' e' g'>
-@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]
-<c~ e g~ b> <c e g b>
-@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 <c e g>\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]~ } <c, e g>2
-\repeat tremolo 8 { c32~ c'~ } <c c,>1
-e8~ c~ a~ f~ <e' 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]
-<c e g>2~ <c e g> |
-\override TieColumn #'tie-configuration =
- #'((0.0 . 1) (-2.0 . 1) (-4.0 . 1))
-<c e g>~ <c e g> |
-@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
@node Phrasing slurs
-@unnumberedsubsubsec Phrasing slurs
+@subsubsection Phrasing slurs
@cindex ligaduras de fraseo
@cindex marcas de fraseo
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]
-<c f g>\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}
@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
@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},
* Glissando::
* Arpeggio::
* Trills::
-* Analysis brackets::
@end menu
@node Glissando
-@unnumberedsubsubsec Glissando
+@subsubsection Glissando
@cindex Glissando
@funindex \glissando
@node Arpeggio
-@unnumberedsubsubsec Arpeggio
+@subsubsection Arpeggio
@cindex Arpeggio
@cindex acorde quebrado
@node Trills
-@unnumberedsubsubsec Trills
+@subsubsection Trills
Los trinos cortos se imprimen como una articulación normal; consulte @ref{Articulations}.
@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}.
@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
É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
@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
\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.
@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.
@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
@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::
@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
@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 <c e g>
+ <c' e g>
+ <c, e' g>
+}
@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
@internalsref{NoteHead}.
-@node Cautionary accidentals
-@unnumberedsubsubsec Cautionary accidentals
-
@cindex alteración recordatoria
@cindex alteración de precaución
@cindex alteración con paréntesis
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
@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
@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 <c e g>
- <c' e g>
- <c, e' g>
-}
-@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}
@end lilypond
+@seealso
+
+Snippets: @lsrdir{Pitches,Pitches}.
+
@node Transpose
-@unnumberedsubsubsec Transpose
+@subsubsection Transpose
@cindex Transposición
@cindex Transposición de alturas
* Key signature::
* Ottava brackets::
* Instrument transpositions::
+* Automatic accidentals::
+* Ambitus::
@end menu
@node Clef
-@unnumberedsubsubsec Clef
+@subsubsection Clef
@funindex \clef
@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
@node Key signature
-@unnumberedsubsubsec Key signature
+@subsubsection Key signature
@cindex Armadura de la tonalidad
@funindex \key
@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
@node Instrument transpositions
-@unnumberedsubsubsec Instrument transpositions
+@subsubsection Instrument transpositions
@cindex transposición de MIDI
@cindex transposición instrumental
...
@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 <c f\harmonic> <d a'\harmonic>
+@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
+
@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.
@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::
* Augmentation dots::
* Tuplets::
* Scaling durations::
+* Ties::
@end menu
@node Durations
-@unnumberedsubsubsec Durations
+@subsubsection Durations
@cindex duración
@funindex \longa
@node Augmentation dots
-@unnumberedsubsubsec Augmentation dots
+@subsubsection Augmentation dots
@funindex .
@node Tuplets
-@unnumberedsubsubsec Tuplets
+@subsubsection Tuplets
@cindex grupos especiales
@cindex tresillos
@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
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' <c' e' g'> ~ <c' e' g'>
+@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]
+<c~ e g~ b> <c e g b>
+@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 <c e>2 ~ }
+\alternative {{ <c e>2. r4 } {<c e>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]
+<c f g>\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]~ } <c, e g>2
+\repeat tremolo 8 { c32~ c'~ } <c c,>1
+e8~ c~ a~ f~ <e' 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]
+<c e g>2~ <c e g> |
+\override TieColumn #'tie-configuration =
+ #'((0.0 . 1) (-2.0 . 1) (-4.0 . 1))
+<c e g>~ <c e g> |
+@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
@end menu
@node Rests
-@unnumberedsubsubsec Rests
+@subsubsection Rests
@cindex Silencios
@funindex \rest
@node Skips
-@unnumberedsubsubsec Skips
+@subsubsection Skips
@cindex Desplazamiento
@cindex Silencio invisible
@node Multi measure rests
-@unnumberedsubsubsec Multi measure rests
+@subsubsection Multi measure rests
@cindex multicompás, silencios
@cindex compás completo, silencios de
@end menu
@node Time signature
-@unnumberedsubsubsec Time signature
+@subsubsection Time signature
@cindex Indicación de compás
@cindex metro, medida
@node Upbeats
-@unnumberedsubsubsec Upbeats
+@subsubsection Upbeats
@cindex anacrusa
@cindex parte al alzar
@node Unmetered music
-@unnumberedsubsubsec Unmetered music
+@subsubsection Unmetered music
@cindex cadencia
@funindex \cadenzaOn
@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}
@end menu
@node Automatic beams
-@unnumberedsubsubsec Automatic beams
+@subsubsection Automatic beams
LilyPond inserta las barras de corchea automáticamente
@node Manual beams
-@unnumberedsubsubsec Manual beams
+@subsubsection Manual beams
@cindex barras manuales
@funindex ]
@node Feathered beams
-@unnumberedsubsubsec Feathered beams
+@subsubsection Feathered beams
UNTRANSLATED NODE: IGNORE ME
@end menu
@node Bar check
-@unnumberedsubsubsec Bar check
+@subsubsection Bar check
@cindex Compás, comprobación de
@funindex barCheckSynchronize
@node Bar lines
-@unnumberedsubsubsec Bar lines
+@subsubsection Bar lines
@cindex Barras de compás
@funindex \bar
@node Bar numbers
-@unnumberedsubsubsec Bar numbers
+@subsubsection Bar numbers
@cindex Compás, números de
@cindex números de compás
@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.
@node Rehearsal marks
-@unnumberedsubsubsec Rehearsal marks
+@subsubsection Rehearsal marks
@cindex Ensayo, letras de
@funindex \mark
@end menu
@node Grace notes
-@unnumberedsubsubsec Grace notes
+@subsubsection Grace notes
@funindex \grace
@cindex ornamentos
@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
@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
@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
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
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
@documentencoding UTF-8
+@include macros.itexi
+
@iftex
@afourpaper
@c don't replace quotes with directed quotes
@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
@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
@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
@contents
-@include macros.itexi
-
@include preface.itely
@include introduction.itely
@include tutorial.itely
@settitle GNU LilyPond -- utilisation du programme
@documentencoding UTF-8
+@include macros.itexi
+
@iftex
@afourpaper
@c don't replace quotes with directed quotes
@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
@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
@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
@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.
@contents
-@include macros.itexi
-
@include install.itely
@include setup.itely
@include running.itely
@settitle GNU LilyPond -- manuel de notation
@documentencoding UTF-8
+@include macros.itexi
+
@iftex
@afourpaper
@c don't replace quotes with directed quotes
@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
@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
@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
@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
@contents
-@include macros.itexi
-
@include notation.itely
@include specialist.itely
version that you are working on. See TRANSLATION for details.
@end ignore
+@macro version
+@value{version}
+@end macro
+
@c ***** Displaying text *****
@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
@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\}/}
@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}
LilyPond pour laquelle le fichier a été écrit,
@example
-\version "2.11.38"
+\version @w{"@version{}"}
@end example
@noindent
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
@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"
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,
in <a class="title" href="user/lilypond-program.pdf">PDF</a>)
<br>(how to install and run the program)
-<li><a class="title" href="../input/lsr/snippets/index.html">Snippets</a>
-(in <a class="title" href="../input/lsr/snippets-big-page.html">one big page</a>,
-in <a class="title" href="../input/lsr/snippets.pdf">PDF</a>)
+<li><a class="title" href="../input/lsr/lilypond-snippets/index.html">Snippets</a>
+(in <a class="title" href="../input/lsr/lilypond-snippets-big-page.html">one big page</a>,
+in <a class="title" href="user/lilypond-snippets.pdf">PDF</a>)
<br>(Short tricks, tips, and examples)
</ul>
--- /dev/null
+<html>
+<!-- This page is automatically generated by translation-status.py from
+translations.template.html; DO NOT EDIT !-->
+<!--
+ Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+ When revising a translation, copy the HEAD committish of the
+ version that you are working on. See TRANSLATION for details.
+!-->
+<head>
+ <title>LilyPond documentation translations status</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+
+<body>
+<p><a href="index.html">Up to documentation index</a></p>
+
+<h1>Documentation translations status</h1>
+
+<p>This is an overview of which parts of LilyPond @TOPLEVEL_VERSION@
+ documentation are translated; for each documentation section, you
+ can read the word count in parentheses, who translated and verified
+ it (translation checkers are printed with a smaller font size), how
+ much of the original section in English has been translation, how
+ up-to-date is the translation, and whether the translation has
+ already been updated after Grand Documentation Project (GDP) was
+ started.
+</p>
+
+<p>Please note that GDP makes a lot of changes to documentation in
+ English, therefore translated documentation is mostly not
+ up-to-date; however, this does not mean translated documentation is
+ inaccurate regarding current LilyPond version, it only means that
+ translated docmentation is not synced with documentation in English.
+ We do our best to keep translated documentation consistent with
+ current LilyPond syntax and features, and will update it per
+ section, when GDP processing of the corresponding section in English
+ is finished.
+</p>
+
+ <p><i>Last updated Tue Feb 26 15:43:29 UTC 2008
+</i></p>
+<table align="center" border="2">
+ <tr align="center">
+ <th>GNU LilyPond --- learning manual</th> <th>fr</th>
+ <th>de</th>
+ <th>es</th>
+ </tr>
+ <tr align="left">
+ <td>Section titles<br>(406)</td>
+ <td>John Mandereau<br>
+ Jean-Charles Malahieude<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #4efe25">partially up-to-date (93 %)</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>Preface<br>(411)</td>
+ <td>Valentin Villenave<br>
+ <small>Ludovic Sardain</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1 Introduction<br>(3198)</td>
+ <td>Ludovic Sardain<br>
+ John Mandereau<br>
+ <small>Jean-Charles Malahieude<br>
+ Jean-Yves Baudais</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #39ff22">partially up-to-date (96 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #39ff22">partially up-to-date (96 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #d587ff"></span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2 Tutorial<br>(5593)</td>
+ <td>Nicolas Grandclaude<br>
+ Ludovic Sardain<br>
+ Gauvain Pocentek<br>
+ <small>Jean-Charles Malahieude<br>
+ Valentin Villenave<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ff8f50">partially up-to-date (23 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #40fe23">partially up-to-date (95 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>3 Fundamental concepts<br>(8626)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #dfef77">partially translated (39 %)</span><br>
+ <span style="background-color: #a5ff31">partially up-to-date (80 %)</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>4 Tweaking output<br>(11862)</td>
+ <td>Valentin Villenave<br>
+ Nicolas Klutchnikoff<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #dfef77">partially translated (16 %)</span><br>
+ <span style="background-color: #ff6f57">partially up-to-date (9 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (16 %)</span><br>
+ <span style="background-color: #ff6f57">partially up-to-date (9 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (16 %)</span><br>
+ <span style="background-color: #d587ff"></span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>5 Working on LilyPond projects<br>(2985)</td>
+ <td>Ludovic Sardain<br>
+ <small>Jean-Yves Baudais<br>
+ Valentin Villenave<br>
+ John Mandereau<br>
+ Jean-Charles Malahieude</small><br>
+ <span style="background-color: #dfef77">partially translated (79 %)</span><br>
+ <span style="background-color: #7dff2b">partially up-to-date (86 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (79 %)</span><br>
+ <span style="background-color: #7dff2b">partially up-to-date (86 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (79 %)</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>A Templates<br>(297)</td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ff9150">partially up-to-date (24 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #d587ff"></span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>B Scheme tutorial<br>(960)</td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (91 %)</span><br>
+ <span style="background-color: #83fe2c">partially up-to-date (85 %)</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ </tr>
+</table>
+<p></p>
+
+<table align="center" border="2">
+ <tr align="center">
+ <th>GNU LilyPond --- program usage</th> <th>fr</th>
+ <th>de</th>
+ <th>es</th>
+ </tr>
+ <tr align="left">
+ <td>Section titles<br>(384)</td>
+ <td>John Mandereau<br>
+ Jean-Charles Malahieude<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #4efe25">partially up-to-date (93 %)</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1 Install<br>(1477)</td>
+ <td>John Mandereau<br>
+ Jean-Charles Malahieude<br>
+ <span style="background-color: #dfef77">partially translated (11 %)</span><br>
+ <span style="background-color: #39ff22">partially up-to-date (96 %)</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (11 %)</span><br>
+ <span style="background-color: #6fff29">partially up-to-date (88 %)</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2 Setup<br>(947)</td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #39ff22">partially up-to-date (96 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #d587ff"></span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>3 Running LilyPond<br>(2860)</td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>4 @command{lilypond-book}: Integrating text and music<br>(2840)</td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>5 Converting from other formats<br>(975)</td>
+ <td>Jean-Charles Malahieude<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ </tr>
+</table>
+<p></p>
+
+<table align="center" border="2">
+ <tr align="center">
+ <th>GNU LilyPond --- The music typesetter</th> <th>fr</th>
+ <th>de</th>
+ <th>es</th>
+ </tr>
+ <tr align="left">
+ <td>Section titles<br>(549)</td>
+ <td>John Mandereau<br>
+ Jean-Charles Malahieude<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #7dff2b">partially up-to-date (86 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #7dff2b">partially up-to-date (86 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #39ff22">partially up-to-date (96 %)</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1 Musical notation<br>(91)</td>
+ <td>John Mandereau<br>
+ Jean-Charles Malahieude<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #acff31">partially up-to-date (79 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #acff31">partially up-to-date (79 %)</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1.1 Pitches<br>(2808)</td>
+ <td>Frédéric Chiasson<br>
+ <small>Valentin Villenave<br>
+ Jean-Charles Malahieude</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ff7855">partially up-to-date (13 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ff7855">partially up-to-date (13 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1.2 Rhythms<br>(7056)</td>
+ <td>Frédéric Chiasson<br>
+ <small>Valentin Villenave<br>
+ Jean-Charles Malahieude</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ff9c4e">partially up-to-date (29 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (82 %)</span><br>
+ <span style="background-color: #ff9c4e">partially up-to-date (29 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (87 %)</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1.3 Expressive marks<br>(1602)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ff9c4e">partially up-to-date (29 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ff9c4e">partially up-to-date (29 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #91ff2e">partially up-to-date (83 %)</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1.4 Repeats<br>(717)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ffb549">partially up-to-date (39 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ffb549">partially up-to-date (39 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1.5 Simultaneous notes<br>(916)</td>
+ <td>Frédéric Chiasson<br>
+ Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ffb549">partially up-to-date (39 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (58 %)</span><br>
+ <span style="background-color: #ffb549">partially up-to-date (39 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (58 %)</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1.6 Staff notation<br>(1637)</td>
+ <td>Valentin Villenave<br>
+ Jean-Charles Malahieude<br>
+ <small>John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ffba48">partially up-to-date (41 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (49 %)</span><br>
+ <span style="background-color: #ffba48">partially up-to-date (41 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1.7 Editorial annotations<br>(866)</td>
+ <td>Jean-Charles Malahieude<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ff6f57">partially up-to-date (9 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (38 %)</span><br>
+ <span style="background-color: #ff6f57">partially up-to-date (9 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (95 %)</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>1.8 Text<br>(2329)</td>
+ <td>Jean-Charles Malahieude<br>
+ <small>Valentin Villenave<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ffb549">partially up-to-date (39 %)</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2 Specialist notation<br>(54)</td>
+ <td>John Mandereau<br>
+ Jean-Charles Malahieude<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #f6fe3b">partially up-to-date (68 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #f6fe3b">partially up-to-date (68 %)</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2.1 Vocal music<br>(2630)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude</small><br>
+ <span style="background-color: #dfef77">partially translated (89 %)</span><br>
+ <span style="background-color: #68ff28">partially up-to-date (89 %)</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (89 %)</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2.2 Chords<br>(1275)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #dfef77">partially translated (56 %)</span><br>
+ <span style="background-color: #76fe2a">partially up-to-date (87 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (56 %)</span><br>
+ <span style="background-color: #76fe2a">partially up-to-date (87 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (56 %)</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2.3 Piano music<br>(702)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #68ff28">partially up-to-date (89 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #68ff28">partially up-to-date (89 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2.4 Percussion<br>(481)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #54ff26">partially up-to-date (92 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #54ff26">partially up-to-date (92 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2.5 Guitar<br>(826)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #5bff27">partially up-to-date (91 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #5bff27">partially up-to-date (91 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2.6 Orchestral strings<br>(66)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ffef3f">partially up-to-date (61 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ffef3f">partially up-to-date (61 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #ffef3f">partially up-to-date (61 %)</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2.7 Bagpipes<br>(242)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #a5ff31">partially up-to-date (80 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (94 %)</span><br>
+ <span style="background-color: #a5ff31">partially up-to-date (80 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #a5ff31">partially up-to-date (80 %)</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>2.8 Ancient notation<br>(4289)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude<br>
+ John Mandereau</small><br>
+ <span style="background-color: #dfef77">partially translated (88 %)</span><br>
+ <span style="background-color: #47ff24">partially up-to-date (94 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (88 %)</span><br>
+ <span style="background-color: #47ff24">partially up-to-date (94 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (88 %)</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>3 Input syntax<br>(2448)</td>
+ <td>Jean-Charles Malahieude<br>
+ <span style="background-color: #dfef77">partially translated (7 %)</span><br>
+ <span style="background-color: #25fe1f">partially up-to-date (99 %)</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>4 Non-musical notation<br>(2164)</td>
+ <td>Valentin Villenave<br>
+ <small>Jean-Charles Malahieude</small><br>
+ <span style="background-color: #dfef77">partially translated (4 %)</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (3 %)</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>5 Spacing issues<br>(8399)</td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>6 Changing defaults<br>(5105)</td>
+ <td>Valentin Villenave<br>
+ <small>Gilles Thibault</small><br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #b9ff33">partially up-to-date (77 %)</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>7 Interfaces for programmers<br>(4547)</td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>A Literature list<br>(299)</td>
+ <td> <span style="background-color: #d0f0f8">not translated</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>B Notation manual tables<br>(935)</td>
+ <td>Frédéric Chiasson<br>
+ Jean-Charles Malahieude<br>
+ <span style="background-color: #dfef77">partially translated (13 %)</span><br>
+ <span style="background-color: #4efe25">partially up-to-date (93 %)</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #dfef77">partially translated (84 %)</span><br>
+ <span style="background-color: #62ff28">partially up-to-date (90 %)</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #dfef77">partially translated (97 %)</span><br>
+ <span style="background-color: #d587ff"></span><br>
+ </td>
+ </tr>
+ <tr align="left">
+ <td>C Cheat sheet<br>(250)</td>
+ <td>Valentin Villenave<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Till Rettig<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #1fff1f">up to date</span><br>
+ </td>
+ <td>Francisco Vila<br>
+ <span style="background-color: #1fff1f">translated</span><br>
+ <span style="background-color: #d587ff"></span><br>
+ </td>
+ </tr>
+</table>
+<p></p>
+
+</body>
+</html>
+++ /dev/null
-<html>
-<!--
- Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
-
- When revising a translation, copy the HEAD committish of the
- version that you are working on. See TRANSLATION for details.
-!-->
-<head>
- <title>LilyPond documentation translations status</title>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-</head>
-
-<body>
-<p><a href="index.html">Up to documentation index</a></p>
-
-<h1>Documentation translations status</h1>
-
-<p>This is an overview of which parts of LilyPond @TOPLEVEL_VERSION@
- documentation are translated; for each documentation section, you
- can read the word count in parentheses, who translated and verified
- it (translation checkers are printed with a smaller font size), how
- much of the original section in English has been translation, how
- up-to-date is the translation, and whether the translation has
- already been updated after Grand Documentation Project (GDP) was
- started.
-</p>
-
-<p>Please note that GDP makes a lot of changes to documentation in
- English, therefore translated documentation is mostly not
- up-to-date; however, this does not mean translated documentation is
- inaccurate regarding current LilyPond version, it only means that
- translated docmentation is not synced with documentation in English.
- We do our best to keep translated documentation consistent with
- current LilyPond syntax and features, and will update it per
- section, when GDP processing of the corresponding section in English
- is finished.
-</p>
-
-</body>
-</html>
--- /dev/null
+<html>
+<!--
+ Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+ When revising a translation, copy the HEAD committish of the
+ version that you are working on. See TRANSLATION for details.
+!-->
+<head>
+ <title>LilyPond documentation translations status</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+
+<body>
+<p><a href="index.html">Up to documentation index</a></p>
+
+<h1>Documentation translations status</h1>
+
+<p>This is an overview of which parts of LilyPond @TOPLEVEL_VERSION@
+ documentation are translated; for each documentation section, you
+ can read the word count in parentheses, who translated and verified
+ it (translation checkers are printed with a smaller font size), how
+ much of the original section in English has been translation, how
+ up-to-date is the translation, and whether the translation has
+ already been updated after Grand Documentation Project (GDP) was
+ started.
+</p>
+
+<p>Please note that GDP makes a lot of changes to documentation in
+ English, therefore translated documentation is mostly not
+ up-to-date; however, this does not mean translated documentation is
+ inaccurate regarding current LilyPond version, it only means that
+ translated docmentation is not synced with documentation in English.
+ We do our best to keep translated documentation consistent with
+ current LilyPond syntax and features, and will update it per
+ section, when GDP processing of the corresponding section in English
+ is finished.
+</p>
+
+</body>
+</html>
# 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
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
$(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 $(@)
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!
@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::
@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::
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
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
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
@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
@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::
{
\time 2/4
\balloonGrobText #'Stem #'(3 . 4) \markup { "I'm a Stem" }
- a'8
- <c' g'-\balloonText #'(-2 . -2) \markup { "I'm a note head" }
-c''>4.
+ a8
+ <c, g'-\balloonText #'(-2 . -2) \markup { "I'm a note head" }
+c>4.
}
+
@end lilypond
There are two music functions, @code{balloonGrobText} and
\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 <<
}
}
\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 {
@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::
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 @{ @}
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
>>
@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
soprano part).
@example
-\version "2.11.38"
+\version @w{"@version{}"}
melody = \relative c' @{
\clef treble
\key c \major
Now we want to add a cello part. Let's look at the @q{Notes only} example:
@example
-\version "2.11.38"
+\version @w{"@version{}"}
melody = \relative c' @{
\clef treble
\key c \major
different notes.
@example
-\version "2.11.38"
+\version @w{"@version{}"}
sopranoMusic = \relative c' @{
\clef treble
\key c \major
easily fixed. Here's the complete soprano and cello template.
@lilypond[quote,verbatim,ragged-right]
-\version "2.11.37"
+\version "2.11.38"
sopranoMusic = \relative c' {
\clef treble
\key c \major
@c The following should appear as music without code
@lilypond[quote,ragged-right]
-\version "2.11.38"
global = { \key d \major \time 4/4 }
sopMusic = \relative c'' {
\clef "treble"
and key:
@example
-\version "2.11.38"
+\version @w{"@version{}"}
\header @{
title = "Jesu, meine Freude"
composer = "J S Bach"
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?::
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
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...}
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
@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
@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}
@documentencoding UTF-8
@documentlanguage en
+@include macros.itexi
+
@iftex
@afourpaper
@c don't replace quotes with directed quotes
@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
@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
@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
@contents
-@include macros.itexi
-
@include preface.itely
@include introduction.itely
@include tutorial.itely
@documentencoding UTF-8
@documentlanguage en
+@include macros.itexi
+
@iftex
@afourpaper
@c don't replace quotes with directed quotes
@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
@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
@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
@contents
-@include macros.itexi
-
@include install.itely
@include setup.itely
@include running.itely
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
@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
@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
@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
@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
@contents
-@include macros.itexi
-
@include notation.itely
@include specialist.itely
@end ignore
@macro version
-@c @value{version}
-2.11.41
+@value{version}
@end macro
@c ***** Displaying text *****
@ref{\TEXT\,,,lilypond-learning-big-page}
@end macro
+@macro rlsr{TEXT}
+@ref{\TEXT\,,,lilypond-snippets-big-page}
+@end macro
+
@end ifset
@ref{\TEXT\,,,lilypond-learning}
@end macro
+@macro rlsr{TEXT}
+@ref{\TEXT\,,,lilypond-snippets}
+@end macro
+
@end ifclear
@end ifhtml
@ref{\TEXT\,,,lilypond-learning}
@end macro
+@macro rlsr{TEXT}
+@ref{\TEXT\,,,lilypond-snippets}
+@end macro
+
@end ifdocbook
@ref{\TEXT\,,,lilypond-learning}
@end macro
+@macro rlsr{TEXT}
+@ref{\TEXT\,,,lilypond-snippets}
+@end macro
+
@end ifinfo
@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
@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
* note names::
* note value::
* octavation::
-* octave sign::
* octave::
+* octave marking::
+* octave sign::
* ornament::
* ossia::
* part::
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
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
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:
@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
@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
@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
@tab honderdachtentwintigste rust
@tab 128e noot
@item @strong{DK}
- @tab ?
- @tab ?
+ @tab hundredeotteogtyvendedelsnode
+ @tab hundredeotteogtyvendedelspause
@tab -
@item @strong{SE}
@tab hundratjugoåttondelsnot
@tab tweehonderdzesenvijftigste rust
@tab 256e noot
@item @strong{DK}
- @tab ?
- @tab ?
+ @tab tohundredeseksoghalvtredsendedelsnode
+ @tab tohundredeseksoghalvtredsendedelspause
@tab -
@item @strong{SE}
@tab tvåhundrafemtiosjättedelsnot
@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.
@node Note heads
@subsection Note heads
+This section suggests ways of altering note heads.
+
@menu
* Special note heads::
* Easy notation note heads::
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
@lilypondfile[ragged-right,line-width=16\cm,staffsize=16,quote]
{repeats-headword.ly}
-Repetition is a central concept in music, and multiple notations
-exist for repetitions.
+Repetition is a central concept in music, and multiple notations exist
+for repetitions. This section discusses how to write repeats,
+including repeated sections of music enclosed within repeat bars,
+alternate repeat endings, a shortcut to writing repeated music that is
+not enclosed within repeat bars, repeated music one measure or less in
+length, and tremolos.
@menu
-* Writing repeats::
-* Other repeats::
+* Types of repeats::
+* Normal 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.
+@node Types of repeats
+@subsection Kinds of repeats
@menu
* Repeat syntax::
-* Normal repeats::
-* Manual repeat commands::
+* Repeats supported::
@end menu
-
@node Repeat syntax
@subsubsection Repeat syntax
@cindex repeat syntax
@cindex syntax, repeat
-LilyPond has one syntactic construct for specifying different
-types of repeats. The syntax is
+In LilyPond, repeats are formed using the following construction:
@example
\repeat @var{variant} @var{repeatcount} @var{repeatbody}
@end example
-where @var{repeabody} is a music expression.
+where @var{repeatbody} is a music expression.
+
+@seealso
+
+Snippets: @lsrdir{Repeats,Repeats}.
+
+@node Repeats supported
+@subsubsection Repeats supported
The following types of repetition are supported
specified by @var{repeatcount}. This is useful when
entering repetitious music.
-@cindex tremolo
-@cindex tremolo beams
-@cindex beams, tremolo
-
-@item tremolo
-Make tremolo beams.
-
@cindex beat repeat
@cindex measure repeat
@cindex percent sign, for repeat
Make beat or measure repeats. These look like percent signs.
Percent repeats must be declared within a @code{Voice} context.
+@cindex tremolo
+@cindex tremolo beams
+@cindex beams, tremolo
+
+@item tremolo
+Make tremolo beams.
+
@end table
-Alternative endings are entered with
+Alternative endings are entered with
+
@funindex \alternative
+
@example
\alternative @{
@var{alternative1}
is assumed to be played more than once.
+@seealso
+
+Music Glossary: @rglos{volta}, @rglos{tremolo}.
+
+Snippets: @lsrdir{Repeats,Repeats}.
+
@node Normal repeats
-@subsubsection Normal repeats
+@subsection Normal repeats
@cindex volta
@cindex prima volta
@cindex volta, seconda
@funindex \repeat
-Normal repeats, with or without alternate repeats:
+@menu
+* Simple repeats::
+* Complex repeats::
+* Manual repeat commands::
+* Repetitious Music::
+* Tremolo repeats::
+* Measure repeats::
+@end menu
+
+@node Simple repeats
+@subsubsection Simple repeats
+
+Normal repeats, without alternate endings:
+
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+\repeat volta 2 { c4 d e f }
+\repeat volta 4 { g f e d }
+c1
+@end lilypond
+
+@seealso
+
+Snippets: @lsrdir{Repeats,Repeats}.
+
+@node Complex repeats
+@subsubsection Complex repeats
+
+
+Repeats with alternate endings:
@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' }
{ cis,2 b }
}
c1
@end lilypond
+
+@noindent
Repeats with upbeats:
@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
@seealso
+Notation Reference: @ref{Bar lines}, @ref{Modifying context plug-ins}.
+
Snippets: @lsrdir{Repeats,Repeats}
Internals Reference: @internalsref{VoltaBracket},
@internalsref{UnfoldedRepeatedMusic}.
@c Examples:
-
+@c FIXME: ?
@knownissues
Print a @code{:|} bar line.
@item @code{(volta @var{text})}
-Print a volta bracket saying @var{text}. The text can be
-specified as a text string or as a markup text, see @ref{Text
-markup}. Do not forget to change the font, as the default number
-font does not contain alphabetic characters;
+Print a volta bracket saying @var{text}. The text can be specified as
+a text string or as a markup text, see @ref{Text markup}. Do not
+forget to change the font, as the default number font does not contain
+alphabetic characters;
@item @code{(volta #f)}
@seealso
-Notation Reference: @ref{Bar lines}.
+Notation Reference: @ref{Bar lines}, @ref{Text markup}.
Snippets: @lsrdir{Repeats,Repeats}
Internals Reference: @internalsref{VoltaBracket},
-@internalsref{RepeatedMusic}, @internalsref{VoltaRepeatedMusic},
-and @internalsref{UnfoldedRepeatedMusic}.
+@internalsref{RepeatedMusic}, @internalsref{VoltaRepeatedMusic}, and
+@internalsref{UnfoldedRepeatedMusic}.
-@node Other repeats
-@subsection Other repeats
+@node Repetitious Music
+@subsubsection Repetitous music
-@menu
-* Tremolo repeats::
-* Measure repeats::
-@end menu
+@c FIXME: rewrite unfold section
+
+@seealso
+
+Snippets: @lsrdir{Repeats,Repeats}.
@node Tremolo repeats
@subsubsection Tremolo repeats
@end lilypond
-
-
@seealso
Snippets: @lsrdir{Repeats,Repeats}
@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.
@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}
@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
@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
@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}:
@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
b b
@end lilypond
+@node Ossia staves
+@subsubsection Ossia staves
+
@cindex staves, Frenched
@cindex ossia
@cindex Frenched staves
@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
@@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
+
+
@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.
was used to write the file:
@example
-\version "2.11.38"
+\version @w{"@version{}"}
@end example
@noindent
underneath the @ref{Version number}.
@example
-\version "2.11.38"
+\version @w{"@version{}"}
\header @{
title = "Symphony"
composer = "Me"
@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
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.
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
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
@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.
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}
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
<c e g>4
\once \override NoteHead #'font-size = #-3
- <c e g>4
+ <c e g>
+ <c e g>
@end lilypond
We see the override affects @emph{all} the notes in the chord.
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.
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}.
@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
@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
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},
@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"
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
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
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
in_f.close()
s = re.sub ('%', '%%', s)
- s = replace_symlinks_urls (s, prefix)
+ s = hack_urls (s, prefix)
s = add_header (s)
### add footer
raise Exception ('unknown option: ' + o)
def name2line (n):
- # UGR
s = r"""
@ifhtml
@html
-<A NAME="%s"></A>
+<a name="%s"></a>
@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:
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
import string
import os
import gettext
+import subprocess
def progress (str):
sys.stderr.write (str + '\n')
translation[l.code] = gettext.translation('lilypond-doc', localedir, [l.code]).gettext
def read_pipe (command):
- pipe = os.popen (command)
- output = pipe.read ()
- if pipe.close ():
+ child = subprocess.Popen (command,
+ stdout = subprocess.PIPE,
+ stderr = subprocess.PIPE,
+ shell = True)
+ (output, error) = child.communicate ()
+ code = str (child.wait ())
+ if not child.stdout or child.stdout.close ():
print "pipe failed: %(command)s" % locals ()
- return output
+ if code != '0':
+ error = code + ' ' + error
+ return (output, error)
comments_re = re.compile (r'^@ignore\n(.|\n)*?\n@end ignore$|@c .*?$', re.M)
space_re = re.compile (r'\s+', re.M)
'fully translated': {'color':'1fff1f', 'short':_doc ('yes'), 'long': _doc ('translated')},
'up to date': {'short':_doc ('yes'), 'long':_doc ('up to date')},
'outdated': {'short':_doc ('partially (%(p)d %%)'), 'long':_doc ('partially up-to-date (%(p)d %%)')},
+ 'N/A': {'short':_doc ('N/A'), 'long':'', 'color':'d587ff' },
'pre-GDP':_doc ('pre-GDP'),
'post-GDP':_doc ('post-GDP')
}
'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 ()
c = [hex (int ((3 * p - 2) * b + 3 * (1 - p) * a))[2:] for (a, b) in [(0xff, 0x1f), (0xff, 0xff), (0x3d, 0x1f)]]
return ''.join (c)
-def line_word_count (tely_line):
- if tely_line.startswith ('@'):
- return 0
- tely_line = comments_re.sub ('', tely_line)
- return len (space_re.split (tely_line))
-
def tely_word_count (tely_doc):
'''
Calculate word count of a Texinfo document node by node.
'the whole file against the original in English, then ' + \
'fill in HEAD committish in the header.\n')
sys.exit (1)
- diff = read_pipe (diff_cmd % {'committish':m.group (1), 'original':masterdocument.filename}).splitlines ()
- insertions = sum ([line_word_count (l[1:]) for l in diff if l.startswith ('+') and not l.startswith ('+++')])
- deletions = sum ([line_word_count (l[1:]) for l in diff if l.startswith ('-') and not l.startswith ('---')])
- outdateness_percentage = 50.0 * (deletions + insertions) / (master_total_word_count + 0.5 * (deletions - insertions))
- self.uptodate_percentage = 100 - int (outdateness_percentage)
- if self.uptodate_percentage > 100:
- alternative = 50
- progress ("%s: strange uptodateness percentage %d %%, setting to %d %%" \
- % (self.filename, self.uptodate_percentage, alternative))
- self.uptodate_percentage = alternative
- elif self.uptodate_percentage < 1:
- alternative = 1
- progress ("%s: strange uptodateness percentage %d %%, setting to %d %%" \
- % (self.filename, self.uptodate_percentage, alternative))
- self.uptodate_percentage = alternative
+ (diff_string, error) = read_pipe (diff_cmd % {'committish':m.group (1), 'original':masterdocument.filename})
+ if error:
+ sys.stderr.write ('warning: %s: %s' % (self.filename, error))
+ self.uptodate_percentage = None
+ else:
+ diff = diff_string.splitlines ()
+ insertions = sum ([len (l) - 1 for l in diff if l.startswith ('+') and not l.startswith ('+++')])
+ deletions = sum ([len (l) - 1 for l in diff if l.startswith ('-') and not l.startswith ('---')])
+ outdateness_percentage = 50.0 * (deletions + insertions) / (masterdocument.size + 0.5 * (deletions - insertions))
+ self.uptodate_percentage = 100 - int (outdateness_percentage)
+ if self.uptodate_percentage > 100:
+ alternative = 50
+ progress ("%s: strange uptodateness percentage %d %%, setting to %d %%" \
+ % (self.filename, self.uptodate_percentage, alternative))
+ self.uptodate_percentage = alternative
+ elif self.uptodate_percentage < 1:
+ alternative = 1
+ progress ("%s: strange uptodateness percentage %d %%, setting to %d %%" \
+ % (self.filename, self.uptodate_percentage, alternative))
+ self.uptodate_percentage = alternative
def completeness (self, formats=['long']):
if isinstance (formats, str):
if isinstance (formats, str):
formats = [formats]
p = self.uptodate_percentage
- if p == 100:
+ if p == None:
+ status = 'N/A'
+ elif p == 100:
status = 'up to date'
else:
status = 'outdated'
l = {}
for f in formats:
- if f == 'color':
+ if f == 'color' and p != None:
l['color'] = percentage_color (p)
else:
l[f] = format_table[status][f] % locals ()
def __init__ (self, filename, parent_translations=dict ([(lang, None) for lang in langdefs.LANGDICT.keys()])):
#print "init MasterTelyDocument %s" % filename
TelyDocument.__init__ (self, filename)
+ self.size = len (self.contents)
self.word_count = tely_word_count (self.contents)
translations = dict ([(lang, os.path.join (lang, filename)) for lang in langdefs.LANGDICT.keys()])
#print translations
progress ("Reading documents...")
-tely_files = read_pipe ("find -maxdepth 2 -name '*.tely'").splitlines ()
-master_docs = [MasterTelyDocument (filename) for filename in tely_files]
+tely_files = read_pipe ("find -maxdepth 2 -name '*.tely'")[0].splitlines ()
+master_docs = [MasterTelyDocument (os.path.normpath (filename)) for filename in tely_files]
master_docs = [doc for doc in master_docs if doc.translations]
-main_status_page = open ('translations.template.html').read ()
+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 ())
progress ("Generating status pages...")
-main_status_html = ' <p><i>Last updated %s</i></p>\n' % read_pipe ('LANG= date -u')
+main_status_html = ' <p><i>Last updated %s</i></p>\n' % read_pipe ('LANG= date -u')[0]
main_status_html += '\n'.join ([doc.html_status () for doc in master_docs])
html_re = re.compile ('<html>', re.I)
main_status_page = html_re.sub ('''<html>
<!-- This page is automatically generated by translation-status.py from
-translations.template.html; DO NOT EDIT !-->''', main_status_page)
+translations.template.html.in; DO NOT EDIT !-->''', main_status_page)
main_status_page = end_body_re.sub (main_status_html + '\n</body>', main_status_page)
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')
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)
$(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
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
}
--- /dev/null
+\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
--- /dev/null
+%% 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
+}
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
+++ /dev/null
-\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
" }
% 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 |
+ }
}
-
\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
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
d8-2 \staccato
|
c4-3
- r8
- r16.
- c32-3
- |
- c8-2
- r16.
- c32
- c8
- r16.
- c32
- |
- c8
+ r4
}
>>
\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
|
<d'' c'' a'>4 \fermata
+ r8 r4 r8
}
% LH Staff
|
<d' fs>4 \fermata
+ r8 r4 r8
}
>>
\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
|
\clef treble
<e' gs>4 %)
+ r4 r2
}
% RH Voice 2
<a fs>2. )
|
s4
+ r4 r2
}
>>
<b,! b,,!>1 ( \sustainUp
|
<e e,>4 )
+ r4 r2
}
>>
\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
\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
\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
\key ef \major
c'''8. [
cs'''8. \f ] \stopTrillSpan
+ r8.
}
\key ef \major
r8.
r8.
+ r8.
}
\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
R1 * 3/4
\bar "||"
- \key d \major
+ %\key d \major
}
% LH
R1 * 3/4
\bar "||"
- \key d \major
+ %\key d \major
}
>>
\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
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..."));
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);
}
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 */
}
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 "
-# 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 $<
$(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)
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
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=)
$(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)/$(<F:.log=.otf-gtable) \
--lisp=$(outdir)/$(<F:.log=.lisp) \
--outdir=$(outdir) \
- --dep $(outdir)/$(<F:.log=.dep) \
--enc $(outdir)/$(<F:.log=.enc) \
$<
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
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
'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)
'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'))
## 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)
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",
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)
import getopt
import sys
import os
-import string
dsr_font_regex = re.compile ('%%DocumentSuppliedResources: font (.*)')
begin_font_regex = re.compile ('%%BeginFont: (.*)')
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')
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:
import os
import re
import shutil
-import string
import sys
import optparse
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):
import os
import sys
-import string
import re
"""
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",
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]:
-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:
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)
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,
#
# Is this pythonic? Personally, I find this rather #define-nesque. --hwn
#
+ADDVERSION = 'addversion'
AFTER = 'after'
BEFORE = 'before'
DOCBOOK = 'docbook'
VERBATIM,
FONTLOAD,
FILENAME,
- ALT
+ ALT,
+ ADDVERSION
]
ly_options = {
''',
VERBATIM: r'''@exampleindent 0
-@verbatim
+%(version)s@verbatim
%(verb)s@end verbatim
''',
+
+ ADDVERSION: r'''@example
+\version @w{"@version{}"}
+@end example
+'''
},
}
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'
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}
## 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
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)\
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)
% 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-02-28.18}
%
-% 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
\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.
\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.
+ \edef\temp{\noexpand\input #1 }%
+ %
+ % This trickery is to read FILE outside of a group, in case it makes
+ % definitions, etc.
\expandafter
}\temp
\popthisfilestack
}%
}
-%
% 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
\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
}
% 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
\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
\chardef\quoteleft=`\`
\chardef\quoteright=`\'
+
\message{page headings,}
\newskip\titlepagetopglue \titlepagetopglue = 1.5in
% @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.
\let\/=\ptexslash
\let\*=\ptexstar
\let\t=\ptext
+ \expandafter \let\csname top\endcsname=\ptextop % outer
\let\frenchspacing=\plainfrenchspacing
%
\def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%