gcstat*.scm
lily-[0-9a-f][0-9a-f][0-9a-f]*
nohup.out
+out
out-cov
out-scons
out-test
@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 2607a3536733d8d4a1e74176027a5cb01d4e776a
+ Translation of GIT committish: d619d9858609c54377a0652eaa7cb843b103742d
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
El tratamiento de la notación antigua incluye posibilidades orientadas a la notación mensural
y de Canto Gregoriano. También se contempla de forma limitada la notación del
-bajo figurado.
+bajo cifrado.
Muchos objetos gráficos ofrecen una propiedad @code{style}, consulte
@itemize
@c TODO: musicological blurb about FB
-LilyPond contempla el bajo figurado
+LilyPond contempla el bajo cifrado
@lilypond[quote,ragged-right,verbatim,fragment]
<<
>>
@end lilypond
-El soporte para el bajo figurado consta de dos partes: hay un modo de entrada,
+El soporte para el bajo cifrado consta de dos partes: hay un modo de entrada,
que se inicia mediante @code{\figuremode}, en el que puede escribir las cifras del bajo
como números, y hay un contexto llamado @internalsref{FiguredBass} que se ocupa
de crear los objetos @internalsref{BassFigure} (cifras del bajo).
@end lilypond
-Aunque posiblemente la forma en que está contemplado el bajo figurado se parece superficialmente a los
+Aunque posiblemente la forma en que está contemplado el bajo cifrado se parece superficialmente a los
acordes, es mucho más simple. El modo @code{\figuremode} sencillamente
almacena los números, y el contexto @internalsref{FiguredBass} los imprime
tal y como se han escrito. No hay ninguna conversión a alturas de nota ni se reproduce ninguna realización
espaciado vertical de las cifras se puede establecer con @code{baseline-skip}.
-El bajo figurado también se puede añadir a contextos @code{Staff} (de pauta)
+El bajo cifrado también se puede añadir a contextos @code{Staff} (de pauta)
directamente. En este caso, su posición vertical se ajusta de
forma automática.
@knownissues
-Al usar bajos figurados por encima del pentagrama con líneas de extensión y
+Al usar bajos cifrados por encima del pentagrama con líneas de extensión y
@code{implicitBassFigures}, las líneas podrían intercambiarse.
Es imposible mantener el orden de forma consistente cuando varias cifras
tienen líneas de extensión que se superponen. Para evitar este problema, utilice
@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@c This file is part of lilypond-program.tely
@ignore
- Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
+ Translation of GIT committish: 66dde21fe63499f32a718f6098abe70e1429059b
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@c This file is part of lilypond-learning.tely
@ignore
- Translation of GIT committish: bea70d053e3e279c3fbb18cbce52d995ce04fec7
+ Translation of GIT committish: b0a1d7fa5e1b8371a0d1f1ed1dfd3fc9bc4881d2
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@node Voices contain music
@section Voices contain music
-UNTRANSLATED NODE: IGNORE ME
+Igual que los cantantes, LilyPond necesita voces para cantar. En
+realidad, la música para cualquier instrumento de una partitura está
+siempre contenida dentro de una voz --el concepto de LilyPond más
+fundamental de todos--.
@menu
* I'm hearing Voices::
@node I'm hearing Voices
@subsection I'm hearing Voices
-UNTRANSLATED NODE: IGNORE ME
+@cindex polifonía
+@cindex capas
+@cindex Voice (voz), contexto de
+
+De las capas más profundas de una partitura de LilyPond, las más bajas
+y más fundamentales reciben el nombre de @q{Voice contexts}
+(«contextos de voz») o, abreviadamente, @q{Voices} («voces»). Las
+voces reciben a veces el nombre de @q{layers} («capas») en otros
+programas de edición de partituras.
+
+De hechho, una capa o contexto de voz es la única que puede contener
+música. Si un contexto de voz no se declara explícitamente, se crea
+uno de forma automática, como vimos al comienzo de este capítulo.
+Ciertos instrumentos como el oboe solamente pueden tocar una nota cada
+vez. La música escrita para estos instrumentos es monofónica y
+solamente requiere una voz única. Los instrumentos que pueden tocar
+más de una nota a la vez, como el piano, con frecuencia necesitarán
+varias voces para codificar las distintas notas y ritmos concurrentes
+que son capaces de tocar.
+
+Una sola voz puede contener muchas notas dentro de un acorde, por
+supuesto; entonces ¿cuándo, exactamente, se necesitan varias voces?
+En primer lugar observe este ejemplo de cuatro acordes:
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
+\key g \major
+<d g>4 <d fis> <d a'> <d g>
+@end lilypond
+
+Esto se puede expresar utilizand sólo símbolos de acorde con ángulos
+simples, @code{< ... >}, y para este propósito tan sólo se necesita
+una voz. Pero suponga que el Fa sostenido fuese realmente una corchea
+seguida de un Sol corchea, una nota de paso que conduce al La. Ahora
+tenemos dos notas que empiezan en el mismo momento pero tienen
+distintas duraciones: la negra Re, y la corchea Fa sostenido. ¿Cómo se
+codifica esto? No se pueden escribir como un acorde porque todas las
+notas de un acorde deben tener la misma duración. Y no se pueden
+escribir como dos notas separadas porque tienen que empezar en el
+mismo momento. Aquí es donde se necesitan dos voces.
+
+Veamos cómo se hace esto dentro de la sintaxis de entrada de LilyPond.
+
+@funindex << \\ >>
+@funindex \\
+
+La forma más fácil de introducir fragmentos con maś de una voz en un
+solo pentagrama es escribir cada voz como una secuencia (con
+@code{@{...@}}), y combinarlas simultáneamente con ángulos dobles,
+@code{<<...>>}. Los fragmentos también se deben separar mediante una
+doble barra invertida, @code{\\}, para situarlos en voces separadas.
+Sin esto, las notas irían a una sola voz, lo que normalmente producirá
+errores. Esta técnica se adapta especialmente bien a piezas de música
+que son mayormente monofónicas pero ocasionalmente tienen cortas
+secciones de polifonía.
+
+He aquí cómo dividimos los acordes anteriore en dos voces y añadimos
+la nota de paso y la ligadura:
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
+\key g \major
+% Voice "1" Voice "2"
+<< { g4 fis8( g) a4 g } \\ { d4 d d d } >> |
+@end lilypond
+
+Observe cómo las plicas de la segunda voz ahora se dirigen hacia
+abajo.
+
+A continuación veamos otro ejemplo sencillo:
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
+\key d \minor
+% Voice "1" Voice "2"
+<< { r4 g g4. a8 } \\ { d,2 d4 g } >> |
+<< { bes4 bes c bes } \\ { g4 g g8( a) g4 } >> |
+<< { a2. r4 } \\ { fis2. s4 } >> |
+@end lilypond
+
+No es necesario usar una construcción @code{<< \\ >>} distinta para
+cada compás. Para música que tenga unas pocas notas en cada compás,
+esta disposición podría facilitar la legibilidad del código, pero si
+hay muchas notas en cada compás podría ser mejor dividirlo en dos
+voces separadas, de la siguiente manera:
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
+\key d \minor
+<< {
+ % Voice "1"
+ r4 g g4. a8 |
+ bes4 bes c bes |
+ a2. r4 |
+} \\ {
+ % Voice "2"
+ d,2 d4 g |
+ g4 g g8( a) g4 |
+ fis2. s4 |
+} >>
+@end lilypond
+
+
+Este ejemplo tiene sólo dos voces, pero la misma construcción se puede
+usar para codificar tres o más voces mediante la adición de maś
+separadores de barra invertida.
+
+Los contextos de voz llevan los nombres de @code{"1"}, @code{"2"},
+etc. En cada uno de estos contextos, la dirección vertical de las
+ligaduras, plicas, matices dinámicos, etc., se ajusta de la forma
+correcta.
+
+@lilypond[quote,verbatim,fragment]
+\new Staff \relative c' {
+ % Main voice
+ c16 d e f
+ % Voice "1" Voice "2" Voice "3"
+ << { g4 f e } \\ { r8 e4 d c8 ~ } >> |
+ << { d2 e2 } \\ { c8 b16 a b8 g ~ g2 } \\ { s4 b4 c2 } >> |
+}
+@end lilypond
+
+Todas estas voces están separadas de la voz principal que contiene las
+notas justo por fuera de la construcción @code{<< .. >>}. Le
+llamaremos a esto la @emph{construcción simultánea}. Las ligaduras
+(de prolongación y de expresión) solamente pueden conectar notas que
+estén dentro de la misma voz, luego las ligaduras no pueden entrar o
+salir de una construcción simultánea. A la inversa, las voces
+paraleleas de construcciones simultáneas distintas sobre el mismo
+pentagrama, son la misma voz. Otras propiedades relativas a las voces
+también conllevan construcciones simultáneas. A continuación vemos el
+mismo ejemplo, con colores y cabezas distintos para cada voz. Observe
+que los cambios en una voz no afectan a otras voces, pero persisten
+más tarde dentro de la misma voz. Observe tambiénn que las notas
+ligadas se pueden dividir entre las mismas voces de dos
+construcciones, como se indica aquí en la voz de triángulos azules.
+
+@lilypond[quote,verbatim]
+\new Staff \relative c' {
+ % Main voice
+ c16 d e f
+ << % Bar 1
+ {
+ \voiceOneStyle
+ g4 f e
+ }
+ \\
+ {
+ \voiceTwoStyle
+ r8 e4 d c8 ~
+ }
+ >>
+ << % Bar 2
+ % Voice 1 continues
+ { d2 e2 }
+ \\
+ % Voice 2 continues
+ { c8 b16 a b8 g ~ g2 }
+ \\
+ {
+ \voiceThreeStyle
+ s4 b4 c2
+ }
+ >>
+}
+@end lilypond
+
+Las instrucciones @code{\voiceXXXStyle} están pensadas principalmente
+para usarlas en documentos educativos como este mismo. Modifican el
+color de la cabeza, la plica y las barras, y el estilo de la cabeza,
+de forma que las voces se puedan distinguir fácilmente. La voz uno
+está establecida a rombos rojos, la voz dos a triángulos azules, la
+voz tres a círculos verdes con aspas, y la voz cuatro (que no se
+utiliza aquí) a aspas color magenta. Veremos más adelante cómo el
+usuario puede crear instrucciones como éstas. Véase @ref{Visibility
+and color of objects}.
+
+La polifonía no cambia la relación de las notas dentro de un bloque
+@code{\relative @{ @}}. La altura de cada nota aún se calcula con
+relación a la nota que le precede inmediatamente, o a la primera nota
+del acrode precedente. Así, en
+
+@example
+\relative c' @{ notaA << < notaB notaC > \\ notaD >> notaE @}
+@end example
+
+@noindent
+@code{notaB} es relativa a @code{notaA} @*
+@code{notaC} es relativa a @code{notaB}, no a @code{notaA}; @*
+@code{notaD} es relativa a @code{notaB}, no a @code{notaA} ni a
+@code{notaC}. @*
+@code{notaE} es relativa a @code{notaD}, no a @code{notaA}
+
+Una forma alternativa, que podría ser más clara si las notas en las
+voces están muy separadas, es colocar una instrucción @code{\relative}
+al principio de cada voz:
+
+@example
+\relative c' @{ notaA ... @}
+<<
+ \relative c'' @{ < notaB notaC > ... @}
+\\
+ \relative g' @{ notaD ... @}
+>>
+\relative c' @{ notaE ... @}
+@end example
+
+Finalmente, analicemos las voces en una pieza de música más compleja.
+He aquí las notas de los dos primeros compases del segundo de los Dos
+Nocturnos de Chopin, Op 32. Este ejemplo se utilizará en fases
+posteriores dentro del presente capítulo y el siguiente, para ilustrar
+varias técnicas para producir notación, y por tanto le pedimos que
+ignore por ahora cualquier cosa en el código subyacente que le parezca
+misteriorso y tan sólo se concentre en la música y las voces (todas
+las complicaciones se explicarán en secciones posteriores).
+
+@c The following should appear as music without code
+@lilypond[quote,ragged-right]
+\new Staff \relative c'' {
+ \key aes \major
+ << % Voice one
+ { c2 aes4. bes8 }
+ \\ % Voice two
+ { aes2 f4 fes }
+ \\ % No voice three
+ \\ % Voice four
+ {
+ % Ignore these for now - they are explained in Ch 4
+ \once \override NoteColumn #'force-hshift = #0
+ <ees c>2
+ \once \override NoteColumn #'force-hshift = #0.5
+ des2
+ }
+ >> |
+ <c ees aes c>1 |
+}
+@end lilypond
+
+Con frecuencia, la dirección de las plicas se utiiliza para indicar la
+continuidad de dos líneas melódicas simultáneas. Aquí, todas las
+plicas de las notas agudas se dirigen hacia arriba y las de las notas
+graves hacia abajo. Ésta es la primera indicación de que se requiere
+más de una voz.
+
+Pero la necesidad real de varias voces aflora cuando hay notas que
+comienzan en el mismo tiempo pero tienen distintas duraciones.
+Observe las notas que comienzan en la tercera parte del primer compás.
+El La bemol es una negra con puntillo, el Fa es una negra y el Re
+bemol es una blanca. Estas notas nos e pueden escribir como un acorde
+porque todas las ntoas de un acorde deben tener la misma duración.
+Tampoco se pueden escribir como notas secuenciales, pues deben
+comenzar al mismo tiempo. Esta sección del compás requiere tres
+voces, y la práctica común sería escribir todo el compás como tres
+voces como se muestra abajo, donde hemos usado distintas cabezas y
+colores para las tres voces. Una vez más, el código que subyace a
+este ejemplo se explicará más tarde, así pues ignore todo lo que no
+entienda.
+
+@c The following should appear as music without code
+@c The three voice styles should be defined in -init
+@lilypond[quote,ragged-right]
+\new Staff \relative c'' {
+ \key aes \major
+ <<
+ { % Voice one
+ \voiceOneStyle
+ c2 aes4. bes8
+ }
+ \\ % Voice two
+ { \voiceTwoStyle
+ aes2 f4 fes
+ }
+ \\ % No Voice three (we want stems down)
+ \\ % Voice four
+ { \voiceThreeStyle
+ % Ignore these for now - they are explained in Ch 4
+ \once \override NoteColumn #'force-hshift = #0
+ <ees c>2
+ \once \override NoteColumn #'force-hshift = #0.5
+ des2
+ }
+ >> |
+ <c ees aes c>1 |
+}
+@end lilypond
+
+
+Vamos a intentar codificar esta música partiendo de cero. Como
+veremos, esto se topa con ciertas dificultades. Comenzamos tal y como
+hemos aprendido, usando la construcción @code{<< \\ >>} para
+introducir la música del primer compás en tres voces:
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+\new Staff \relative c'' {
+ \key aes \major
+ <<
+ { c2 aes4. bes8 } \\ { aes2 f4 fes } \\ { <ees c>2 des2 }
+ >>
+ <c ees aes c>1
+}
+@end lilypond
+
+@cindex plica abajo
+@cindex plica arriba
+
+Las direcciones de las plicas se asignan automáticamente de forma que
+las voces de numeración impar reciben las plicas hacia arriba y las de
+numeración par hacia abajo. Las plicas de las voces 1 y 2 están
+correctas, pero las plicas de la voz 3 debería ir hacia abajo en este
+fragmentoo en particular. Podemos corregir esto simplemente
+olvidándonos de la voz tres y situando la música en la voz cuatro:
+
+@lilypond[quote,verbatim,fragment,ragged-right]
+\new Staff \relative c'' {
+ \key aes \major
+ << % Voice one
+ { c2 aes4. bes8 }
+ \\ % Voice two
+ { aes2 f4 fes }
+ \\ % Omit Voice three
+ \\ % Voice four
+ { <ees c>2 des2 }
+ >> |
+ <c ees aes c>1 |
+}
+@end lilypond
+
+@noindent
+Vemos que esto arregla la dirección de la plica, pero presenta un
+problema que se encuentra a veces con varias voces: las plicas de las
+notas en una voz pueden colisionar con las cabezas de otras voces. Al
+disponer las notas, LilyPond permite que las notas o acordes de dos
+voces ocupen la misma columna vertical de notas teniendo en cuenta que
+las plicas están en direcciones opuestas, pero las notas de la tercera
+y cuarta voces se desplazan si es necesario para evitar la colisión
+entre las cabezas. Esto funciona bien por lo general, pero en este
+ejemplo claramente las notas de la voz inferior no están bien
+colocadas de forma predeterminada. LilyPond proporciona diversas
+maneras de ajustar la colocación horizontal de las notas. Aún no
+estamos preparados para ver cómo corregir esto, así que dejaremos este
+problema aparcado hasta una sección posterior (véase la propiedad
+force-hshift en @ref{Fixing overlapping notation} )
@node Explicitly instantiating voices
@subsection Explicitly instantiating voices
-UNTRANSLATED NODE: IGNORE ME
+
+@funindex \voiceOne
+@funindex \voiceTwo
+@funindex \voiceThree
+@funindex \voiceFour
+
+Los contextos de voz también se pueden crear manualmente dentro de un
+bloque @code{<< >>} para crear música polifónica, utilizando
+@code{\voiceOne} ... @code{\voiceFour} para indicar las direcciones
+requeridas de plicas, ligaduras, etc. En partituras más largas, este
+método es más claro porque permite que las voces estén separadas y
+reciban nombres más descriptivos.
+
+Concretamente, la construcción @code{<< \\ >>} que usamos en la
+sección previa:
+
+@example
+\new Staff @{
+ \relative c' @{
+ << @{ e4 f g a @} \\ @{ c,4 d e f @} >>
+ @}
+@}
+@end example
+
+@noindent
+equivale a
+
+@example
+\new Staff <<
+ \new Voice = "1" @{ \voiceOne \relative c' @{ e4 f g a @} @}
+ \new Voice = "2" @{ \voiceTwo \relative c' @{ c4 d e f @} @}
+>>
+@end example
+
+Los dos ejemplos anteriores producirán:
+
+@c The following example should not display the code
+@lilypond[ragged-right,quote]
+\new Staff <<
+ \new Voice = "1" { \voiceOne \relative c' { e4 f g a } }
+ \new Voice = "2" { \voiceTwo \relative c' { c4 d e f } }
+>>
+@end lilypond
+
+Las instrucciones @code{\voiceXXX} establecen la dirección de las
+plicas, ligaduras de expresión, ligaduras de prolongación,
+articulaciones, anotaciones de texto, puntillos y digitaciones.
+@code{\voiceOne} y @code{\voiceThree} hacen que estos objetos apunten
+hacia arriba, mientras que @code{\voiceTwo} y @code{\voiceFour} los
+hacen apuntar hacia abajo. Estas instrucciones también producen un
+desplazamientoo horizontal para cada voz cuando es necesario para
+evitar choques entre las cabezas. La instrucción @code{\oneVoice}
+devuelve los ajustes de nuevo a los valores normales para una sola
+voz.
+
+Veamos en algunos ejemplos sencillos exactamente qué efecto tienen
+@code{\oneVoice}, @code{\voiceOne} y @code{voiceTwo} sobre el marcado,
+las ligaduras de unión y de expresión y las indicaciones de dinámica:
+
+@lilypond[quote,ragged-right,verbatim]
+\relative c'{
+ % Default behaviour or behaviour after \oneVoice
+ c d8 ~ d e4 ( f g a ) b-> c
+}
+@end lilypond
+
+@lilypond[quote,ragged-right,verbatim]
+\relative c'{
+ \voiceOne
+ c d8 ~ d e4 ( f g a ) b-> c
+ \oneVoice
+ c, d8 ~ d e4 ( f g a ) b-> c
+}
+@end lilypond
+
+@lilypond[quote,ragged-right,verbatim]
+\relative c'{
+ \voiceTwo
+ c d8 ~ d e4 ( f g a ) b-> c
+ \oneVoice
+ c, d8 ~ d e4 ( f g a ) b-> c
+}
+@end lilypond
+
+Una expresión que aparece directamente dentro de @code{<< >>}
+pertenece a la voz principal (pero, observe, @strong{no} dentro de una
+construcción @code{<< \\ >>}). Esto es útilo cuando aparecen voces
+nuevas mientras la voz principal está sonando. A continuación podemos
+ver una realización más correcta del ejemplo de la sección anterior.
+Las notas rojas en forma de rombo muestran que la melodía principal
+está ahora dentro de un contexto de una sola voz, haciendo que se
+pueda trazar una ligadura por encima de ellas.
+
+@lilypond[quote,ragged-right,verbatim]
+\new Staff \relative c' {
+ \voiceOneStyle
+ % The following notes are monophonic
+ c16^( d e f
+ % Start simultaneous section of three voices
+ <<
+ % Continue the main voice in parallel
+ { g4 f e | d2 e2) }
+ % Initiate second voice
+ \new Voice {
+ % Set stems, etc, down
+ \voiceTwo
+ r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2
+ }
+ % Initiate third voice
+ \new Voice {
+ % Set stems, etc, up
+ \voiceThree
+ s2. | s4 b4 c2
+ }
+ >>
+}
+@end lilypond
+
+@cindex anidado de expresiones musicales
+@cindex anidado de construcciones simultáneas
+
+Seon posibles construcciones polifónicas anidadas más profundamente, y
+si una voz aparece sólo brevemente podría haber una forma más natural
+de tipografiar la música.
+
+@lilypond[quote,ragged-right,verbatim]
+\new Staff \relative c' {
+ c16^( d e f
+ <<
+ { g4 f e | d2 e2) }
+ \new Voice {
+ \voiceTwo
+ r8 e4 d c8 ~ |
+ <<
+ {c8 b16 a b8 g ~ g2}
+ \new Voice {
+ \voiceThree
+ s4 b4 c2
+ }
+ >>
+ }
+ >>
+}
+@end lilypond
+
+
+Este método de anida voces nuevas brevemente es útil cuando sólo hay
+secciones polifónicas pequeñas, pero cuando todo el pentagrama es muy
+plifónico podría ser más claro usar varias voces todo el tiempo,
+usando notas espaciadoras para pasar por encima de las secciones en
+que una voz está en silencio, como aquí:
+
+@lilypond[quote,ragged-right,verbatim]
+\new Staff \relative c' <<
+ % Initiate first voice
+ \new Voice {
+ \voiceOne
+ c16^( d e f g4 f e | d2 e2) |
+ }
+ % Initiate second voice
+ \new Voice {
+ % set stems, etc down
+ \voiceTwo
+ s4 r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2 |
+ }
+ % Initiate third voice
+ \new Voice {
+ % set stems, etc up
+ \voiceThree
+ s1 | s4 b4 c2 |
+ }
+>>
+@end lilypond
+
+@cindex columna de notas
+@cindex desplazamiento, instrucciones de
+@funindex \shiftOff
+@funindex \shiftOn
+@funindex \shiftOnn
+@funindex \shiftOnnn
+
+Las notas cercanas de un acorde, o las notas que se producen al mismo
+tiempo en distintas voces, se disponen en dos (y ocasionalmente más)
+columnas para evitar el solapamiento de las cabezas. Reciben el
+nombre de columnas de notas. Hay columnas distintas para cada voz, y
+el desplazamiento especificado en curso dependiente de la voz se
+applica a la columna de la nota si en caso contgrario se produjese una
+colisión. Esto se puede ver en el ejemplo anterior. En el compás 2 el
+Do en la voz dos está desplazado a la derecha respecto del Re de la
+voz uno, y en el último acorde el Do de la voz tres también está
+desplazado a la derecha respecto de las otras notas.
+
+Las instrucciones @code{\shiftOn}, @code{\shiftOnn}, @code{\shiftOnnn}
+y @code{\shiftOff} especifican el grado en que se deben desplazar las
+ntoas y acordes de la voz si en caso contrariio ocurriese una
+colisión. De forma predeterminada, las voces exteriores (normalmente
+las voces uno y dos) llecan especificado @code{\shiftOff}, mientras
+que las voces interiores (tres y cuatro) tienen @code{\shiftOn}
+especificado. Cuando se aplica un desplazamiento, las voces uno y
+tres se desplazan hacia la derecha y las voces dos y cuatro se
+desplazan hacia la izquierda.
+
+@code{\shiftOnn} y @code{\shiftOnnn} definen niveles adicionales de
+desplazamiento que se peuden especificar temporalmente para resolver
+colisiones en situaciones complejas (véase @ref{Real music example}).
+
+Una columna de notas puede contener s´olo una nota (o acorde) de una
+voz con las plicas hacia arriba y una not (o acorde) de una voz con
+las plicas hacia abajo. Si las notas de dos voces que tienen las
+plicas en la misma dirección se sitúan en la misma posición y las dos
+voces no tienen ningún desplazamiento o llevan especificado el mismo
+desplazamiento, se producirá el mensaje de error @qq{Chocan demasiadas
+columnas de notas}.
@node Voices and vocals
@subsection Voices and vocals
-UNTRANSLATED NODE: IGNORE ME
+
+La música vocal presenta una dificultad especial: tenemos que combinar
+dos expresiones, a saber, las notas y la letra.
+
+Ya ha visto la instrucción @code{\addlyrics@{@}}, que maneja bien
+partituras sencillas. Sin embargo esta técnica es algo limitada.
+Para música de mayor complejidad, tenemos que introducir la letra en
+un contexto @code{Lyrics} utilizando @code{\new Lyrics} y enlazar
+explícitamente la letra y las notas mediante @code{\lyricsto@{@}},
+usando el nombre asignado a la voz.
+
+@lilypond[quote,verbatim,fragment]
+<<
+ \new Voice = "one" \relative c'' {
+ \autoBeamOff
+ \time 2/4
+ c4 b8. a16 g4. f8 e4 d c2
+ }
+ \new Lyrics \lyricsto "one" {
+ No more let sins and sor -- rows grow.
+ }
+>>
+@end lilypond
+
+El barrado automático que LilyPond usa de forma predeterminada
+funciona bien para la música instrumental, pero no ten bien para
+música con letra, donde o bien el barrado no se necesita en absoluto,
+o bien se utiliza para indicar los melismaas de la letra. En el
+ejemplo anterior hemos utilizado la instrucción @code{\autoBeamOff}
+para desactivar el barrado automático.
+
+Ahora vamos a reutilizar el ejemplo anterior de «Judas Macabeo» para
+ilustrar esta técnica más flexible. Primero la reescribiremos para
+que use variables de manera que la música y la letra se pueda separar
+de la estructura de pentagramas. También introduciremos una llave de
+grupo de ChoirStaff. La letra en sí se debe introducir con
+@code{\lyricmode} para estar seguros de que se interpreta como letra y
+no como música.
+
+@lilypond[quote,verbatim]
+global = { \time 6/8 \partial 8 \key f \major}
+SopOneMusic = \relative c'' {
+ c8 | c([ bes)] a a([ g)] f | f'4. b, | c4.~ c4 }
+SopTwoMusic = \relative c' {
+ r8 | r4. r4 c8 | a'([ g)] f f([ e)] d | e([ d)] c bes' }
+SopOneLyrics = \lyricmode {
+ Let | flee -- cy flocks the | hills a -- dorn, __ }
+SopTwoLyrics = \lyricmode {
+ Let | flee -- cy flocks the | hills a -- dorn, }
+
+\score {
+ \new ChoirStaff <<
+ \new Staff <<
+ \new Voice = "SopOne" {
+ \global
+ \SopOneMusic
+ }
+ \new Lyrics \lyricsto "SopOne" {
+ \SopOneLyrics
+ }
+ >>
+ \new Staff <<
+ \new Voice = "SopTwo" {
+ \global
+ \SopTwoMusic
+ }
+ \new Lyrics \lyricsto "SopTwo" {
+ \SopTwoLyrics
+ }
+ >>
+ >>
+}
+@end lilypond
+
+Ésta es la estructura básica de todas las partituras vocales. Se
+pueden añadir más pentagramas según se necesite, se pueden añadir más
+voces a los pentagramas y más estrofas a la letra, y las variables que
+contienen la música se pueden colocar fácilmente en archivos separados
+cuando se hagan demasiado largos.
+
+A continuación podemos ver un ejemplo final de la primera línea de un
+himno con cuatro estrofas, para coro SATB. En este caso la letra de
+las cuatro partes es la misma.
+
+@lilypond[quote,verbatim]
+TimeKey = { \time 4/4 \partial 4 \key c \major}
+SopMusic = \relative c' { c4 | e4. e8 g4 g | a a g }
+AltoMusic = \relative c' { c4 | c4. c8 e4 e | f f e }
+TenorMusic = \relative c { e4 | g4. g8 c4. b8 | a8 b c d e4 }
+BassMusic = \relative c { c4 | c4. c8 c4 c | f8 g a b c4 }
+VerseOne = \lyricmode {
+ E -- | ter -- nal fa -- ther, | strong to save, }
+VerseTwo = \lyricmode {
+ O | Christ, whose voice the | wa -- ters heard, }
+VerseThree = \lyricmode {
+ O | Ho -- ly Spi -- rit, | who didst brood }
+VerseFour = \lyricmode {
+ O | Tri -- ni -- ty of | love and pow'r }
+
+\score {
+ \new ChoirStaff <<
+ \new Staff <<
+ \clef "treble"
+ \new Voice = "Sop" { \voiceOne \TimeKey \SopMusic }
+ \new Voice = "Alto" { \voiceTwo \AltoMusic }
+ \new Lyrics \lyricsto "Sop" { \VerseOne }
+ \new Lyrics \lyricsto "Sop" { \VerseTwo }
+ \new Lyrics \lyricsto "Sop" { \VerseThree }
+ \new Lyrics \lyricsto "Sop" { \VerseFour }
+ >>
+ \new Staff <<
+ \clef "bass"
+ \new Voice = "Tenor" { \voiceOne \TimeKey \TenorMusic }
+ \new Voice = "Bass" { \voiceTwo \BassMusic }
+ >>
+ >>
+}
+@end lilypond
@node Contexts and engravers
@section Contexts and engravers
-UNTRANSLATED NODE: IGNORE ME
+Los contextos y grabadores se han mencionado de manera informal en
+secciones anteriore; ahora tan sólo vamos a ver estos conceptos con
+más detalle, pues son importantes en el ajuste fino de la salida de
+LilyPond.
@menu
* Contexts explained::
@node Extending the templates
@section Extending the templates
-Ha leído el tutorial y ahora sabe escribir música. Pero ¿cómo puede poner
-los pentagramas que quiere? Las plantillas están muy bien, pero ¿qué ocurre
-si quiere algo que no está en una de ellas?
+Ha leído el tutorial y ahora sabe escribir música. Pero ¿cómo puede
+poner los pentagramas que quiere? Las plantillas están muy bien, pero
+¿qué ocurre si quiere algo que no está en una de ellas? Bien, puede
+encontrar montañas de plantillas (véase @ref{Templates}) que le pueden
+servir como punto de partida. Pero ¿y si quiere algo que no está
+contemplado aquí? Continúe leyendo.
+
+
+@menu
+* Soprano and cello::
+* Four-part SATB vocal score::
+* Building a score from scratch::
+@end menu
+
+@node Soprano and cello
+@subsection Soprano and cello
-Para empezar, tome la plantilla que le parezca más parecida a aquello que quiere
-conseguir. Digamos que quiere escribir algo para soprano y cello.
-En este caso comenzaríamos con la plantilla @q{Notas y letra} (para la parte
-de soprano).
+
+Para empezar, tome la plantilla que le parezca más parecida a aquello
+que quiere conseguir. Digamos que quiere escribir algo para soprano y
+cello. En este caso comenzaríamos con la plantilla @q{Notas y letra}
+(para la parte de soprano).
@example
-\version "2.11.38"
+\version @w{"@version{}"}
melodia = \relative c' @{
\clef treble
\key c \major
\time 4/4
-
a4 b c d
@}
Aaa Bee Cee Dee
@}
-\score@{
+\score @{
<<
\new Voice = "uno" @{
\autoBeamOff
\melodia
@}
- \new Lyrics \lyricsto "uno" \text
+ \new Lyrics \lyricsto "uno" \texto
>>
\layout @{ @}
\midi @{ @}
@}
@end example
-Ahora queremos añadir una parte de violoncello. Veamos el ejemplo @q{Sólo notas}:
+Ahora queremos añadir una parte de violoncello. Veamos el ejemplo
+@q{Sólo notas}:
@example
-\version "2.11.38"
+\version @w{"@version{}"}
melodia = \relative c' @{
\clef treble
\key c \major
\time 4/4
-
a4 b c d
@}
\score @{
-\new Staff \melody
-\layout @{ @}
-\midi @{ @}
+ \new Staff \melodia
+ \layout @{ @}
+ \midi @{ @}
@}
@end example
-No necesitamos dos comandos @code{\version}. Vamos a necesitar la sección @code{melodia}.
-No queremos dos secciones @code{\score} (si tuviésemos dos @code{\score}s, acabaríamos con las dos particellas por separado.
-Queremos las dos juntas, como un dúo.
-Dentro de la sección @code{\score}, no nos hacen falta dos
-@code{\layout} ni dos @code{\midi}.
-
-Si nos limitásemos a copiar y pegar la sección @code{melodia}, acabaríamos con dos
-secciones @code{melodia} separadas, así que vamos a cambiarles el nombre. Llamaremos
-@code{musicaSoprano} a la sección de la soprano y @code{musicaCello} a la sección del violoncello.
-Al mismo tiempo cambiaremos el nombre de @code{texto}
-a @code{letraSoprano}. Recuerde cambiar el nombre a las dos apariciones de todos estos
-nombres -- tanto la definición inicial (la
-parte @code{melodia = relative c' @{ }) --
-como el uso de ese nombre (en la sección @code{\score}).
-
-También aprovecharemos para cambiar el pentagrama de la parte del cello (los violoncellos
-se escriben normalmente en clave de Fa). Asimismo, cambiaremos algunas
-notas del cello.
+No necesitamos dos comandos @code{\version}. Vamos a necesitar la
+sección @code{melodia}. No queremos dos secciones @code{\score} (si
+tuviésemos dos @code{\score}s, acabaríamos con las dos particellas por
+separado. Queremos las dos juntas, como un dúo. Dentro de la sección
+@code{\score}, no nos hacen falta dos @code{\layout} ni dos
+@code{\midi}.
+
+Si nos limitásemos a copiar y pegar la sección @code{melodia},
+acabaríamos con dos secciones @code{melodia} separadas, así que vamos
+a cambiarles el nombre. Llamaremos @code{musicaSoprano} a la sección
+de la soprano y @code{musicaCello} a la sección del violoncello. Al
+mismo tiempo cambiaremos el nombre de @code{texto} a
+@code{letraSoprano}. Recuerde cambiar el nombre a las dos apariciones
+de todos estos nombres -- tanto la definición inicial (la parte
+@code{melodia = relative c' @{ }) -- como el uso de ese nombre (en la
+sección @code{\score}).
+
+También aprovecharemos para cambiar el pentagrama de la parte del
+cello (los violoncellos se escriben normalmente en clave de Fa).
+Asimismo, cambiaremos algunas notas del cello.
@example
-\version "2.11.38"
+\version @w{"@version{}"}
musicaSoprano = \relative c' @{
\clef treble
\key c \major
\time 4/4
-
a4 b c d
@}
@}
@end example
-Esto tiene una pinta prometedora, pero la parte del cello no sale en la partitura
-(no la hemos puesto en la sección @code{\score}). Si queremos que la parte
-del cello aparezca debajo de la de soprano, tenemos que añadir
+Esto tiene una apariencia prometedora, pero la parte del cello no sale
+en la partitura (no la hemos puesto en la sección @code{\score}). Si
+queremos que la parte del cello aparezca debajo de la de soprano,
+tenemos que añadir
@example
\new Staff \musicaCello
@end example
@noindent
-justo debajo de todo lo de la soprano. También tenemos que poner @code{<<} y
-@code{>>} antes y después de la música -- lo que indica a LilyPond que hay
-más de una cosa (en este caso, @code{Staff}) sucediendo al mismo tiempo -- . La
-@code{\score} se parecerá ahora a esto
+justo debajo de todo lo de la soprano. También tenemos que poner
+@code{<<} y @code{>>} antes y después de la música -- lo que indica a
+LilyPond que hay más de una cosa (en este caso, @code{Staff})
+sucediendo al mismo tiempo -- . La @code{\score} se parecerá ahora a
+esto
@example
\score@{
@end example
@noindent
-Esto parece un poco enrevesado; los márgenes están descuadrados. Esto tiene
-fácil solución. Presentamos aquí la plantilla completa para soprano y cello.
+Esto parece un poco enrevesado; los márgenes están descuadrados. Esto
+tiene fácil solución. Presentamos aquí la plantilla completa para
+soprano y cello.
@lilypond[quote,verbatim,ragged-right]
\version "2.11.38"
}
@end lilypond
-@menu
-* Soprano and cello::
-* Four-part SATB vocal score::
-* Building a score from scratch::
-@end menu
-@node Soprano and cello
-@subsection Soprano and cello
-
-UNTRANSLATED NODE: IGNORE ME
-
@node Four-part SATB vocal score
@subsection Four-part SATB vocal score
-UNTRANSLATED NODE: IGNORE ME
+La mayor parte de las partituras vocales escritas para coro mixto a
+cuatro voces con acompañamiento orquestal, como el «Elías» de
+Mendelssohn o el «Mesías» de Haendel, tienen la música coral y la
+letra en cuatro pentagramas para S, A, T y B, respectivamente, con una
+reducción de piano del acompañamiento de orquesta, por debajo. He aquí
+un ejemplo del «Mesías» de Haendel:
+
+@c The following should appear as music without code
+@lilypond[quote,ragged-right]
+global = { \key d \major \time 4/4 }
+sopMusic = \relative c'' {
+ \clef "treble"
+ r4 d2 a4 | d4. d8 a2 | cis4 d cis2 |
+}
+sopWords = \lyricmode {
+ Wor -- thy is the lamb that was slain
+}
+altoMusic = \relative a' {
+ \clef "treble"
+ r4 a2 a4 | fis4. fis8 a2 | g4 fis e2 |
+}
+altoWords = \sopWords
+tenorMusic = \relative c' {
+ \clef "G_8"
+ r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 |
+}
+tenorWords = \sopWords
+bassMusic = \relative c' {
+ \clef "bass"
+ r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 |
+}
+bassWords = \sopWords
+upper = \relative a' {
+ \clef "treble"
+ \global
+ r4 <a d fis>2 <a e' a>4 |
+ <d fis d'>4. <d fis d'>8 <a d a'>2 |
+ <g cis g'>4 <a d fis> <a cis e>2 |
+}
+lower = \relative c, {
+ \clef "bass"
+ \global
+ <d d'>4 <d d'>2 <cis cis'>4 |
+ <b b'>4. <b' b'>8 <fis fis'>2 |
+ <e e'>4 <d d'> <a' a'>2 |
+}
+
+\score {
+ << % combine ChoirStaff and PianoStaff in parallel
+ \new ChoirStaff <<
+ \new Staff = "sopranos" <<
+ \set Staff.instrumentName = "Soprano"
+ \new Voice = "sopranos" { \global \sopMusic }
+ >>
+ \new Lyrics \lyricsto "sopranos" { \sopWords }
+ \new Staff = "altos" <<
+ \set Staff.instrumentName = "Alto"
+ \new Voice = "altos" { \global \altoMusic }
+ >>
+ \new Lyrics \lyricsto "altos" { \altoWords }
+ \new Staff = "tenors" <<
+ \set Staff.instrumentName = "Tenor"
+ \new Voice = "tenors" { \global \tenorMusic }
+ >>
+ \new Lyrics \lyricsto "tenors" { \tenorWords }
+ \new Staff = "basses" <<
+ \set Staff.instrumentName = "Bass"
+ \new Voice = "basses" { \global \bassMusic }
+ >>
+ \new Lyrics \lyricsto "basses" { \bassWords }
+ >> % end ChoirStaff
+
+ \new PianoStaff <<
+ \set PianoStaff.instrumentName = "Piano "
+ \new Staff = "upper" \upper
+ \new Staff = "lower" \lower
+ >>
+ >>
+}
+@end lilypond
+
+Ninguna de las plantillas proporciona esta disposición con exactitud.
+La más parecida es @q{partitura vocal SATB y reducción de piano
+automática}, pero necesitamos cambiar la disposición y añadir un
+acompañamiento de piano que no esté derviado automáticamente de las
+partes vocales. Las variables que contienen la música y la letra de
+las partes vocales es adecuada, pero tendremos que añadir variables
+para la reducción de piano.
+
+El orden en que aparecen los contextos en el ChoirStaff de la
+plantilla no se corresponde con el orden de la partitura vocal que
+hemos mostrado más arriba. Tenemos que reordenarlas para que haya
+cuatro pentagramas con la letra escrita directamente bajo las notas de
+cada parte. Todas las voces deben ser @code{\voiceOne}, que es la
+predeterminada, para que las instrucciones @code{\voiceXXX} se puedan
+eliminar. También tenemos que especificar la clave de tenor (clave de
+sol octava baja) en las partes de tenor. Aún no hemos encontrado la
+forma en que la letra se especifica en la plantilla, así que tenemos
+que utilizar el método que nos resulta familiar. También tenemos que
+escribir los nombres de cada pentagrama.
+
+Al hacerlo así obtenemos el ChoirStaff siguiente:
+
+@example
+ \new ChoirStaff <<
+ \new Staff = "sopranos" <<
+ \set Staff.instrumentName = "Soprano"
+ \new Voice = "sopranos" @{ \global \musicaSoprano @}
+ >>
+ \new Lyrics \lyricsto "sopranos" @{ \latraSoprano @}
+ \new Staff = "altos" <<
+ \set Staff.instrumentName = "Alto"
+ \new Voice = "altos" @{ \global \musicaAlto @}
+ >>
+ \new Lyrics \lyricsto "altos" @{ \letraAlto @}
+ \new Staff = "tenores" <<
+ \set Staff.instrumentName = "Tenor"
+ \new Voice = "tenores" @{ \global \musicaTenor @}
+ >>
+ \new Lyrics \lyricsto "tenors" @{ \letraTenor @}
+ \new Staff = "bajos" <<
+ \set Staff.instrumentName = "Bass"
+ \new Voice = "bajos" @{ \global \musicaBajo @}
+ >>
+ \new Lyrics \lyricsto "basses" @{ \letraBajo @}
+ >> % fin del ChoirStaff
+@end example
+
+A continuación debemos trabajar sobre la parte de piano. Es fácil:
+tan sólo hay que sacar la parte de piano de la plantilla de @q{Piano
+solista}:
+
+@example
+\new PianoStaff <<
+ \set PianoStaff.instrumentName = "Piano "
+ \new Staff = "superior" \superior
+ \new Staff = "inferior" \inferior
+>>
+@end example
+
+y escribir las definiciones de variable para @code{superior} e
+@code{inferior}.
+
+Los grupos ChoirStaff y PianoStaff se deben combinar utilizando
+ángulos dobles, ya queremos apilarlos unos sobre otros:
+
+@example
+<< % combinar los grupos ChoirStaff y PianoStaff uno sobre el otro
+ \new ChoirStaff <<
+ \new Staff = "sopranos" <<
+ \new Voice = "sopranos" @{ \global \musicaSoprano @}
+ >>
+ \new Lyrics \lyricsto "sopranos" @{ \letraSoprano @}
+ \new Staff = "altos" <<
+ \new Voice = "altos" @{ \global \musicaAlto @}
+ >>
+ \new Lyrics \lyricsto "altos" @{ \letraAlto @}
+ \new Staff = "tenores" <<
+ \clef "G_8" % clave de tenor
+ \new Voice = "tenores" @{ \global \musicaTenor @}
+ >>
+ \new Lyrics \lyricsto "tenores" @{ \letraTenor @}
+ \new Staff = "bajos" <<
+ \clef "bass"
+ \new Voice = "bajos" @{ \global \musicaBajo @}
+ >>
+ \new Lyrics \lyricsto "bajos" @{ \letraBajo @}
+ >> % fin del ChoirStaff
+
+ \new PianoStaff <<
+ \set PianoStaff.instrumentName = "Piano "
+ \new Staff = "upper" \upper
+ \new Staff = "lower" \lower
+ >>
+>>
+@end example
+
+Al combinar todo esto junto y escribir la música de los tres compases
+del ejemplo anterior, obtenemos:
+
+@lilypond[quote,verbatim,ragged-right]
+\version "2.11.38"
+global = { \key d \major \time 4/4 }
+sopMusic = \relative c'' {
+ \clef "treble"
+ r4 d2 a4 | d4. d8 a2 | cis4 d cis2 |
+}
+sopWords = \lyricmode {
+ Wor -- thy is the lamb that was slain
+}
+altoMusic = \relative a' {
+ \clef "treble"
+ r4 a2 a4 | fis4. fis8 a2 | g4 fis fis2 |
+}
+altoWords = \sopWords
+tenorMusic = \relative c' {
+ \clef "G_8"
+ r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 |
+}
+tenorWords = \sopWords
+bassMusic = \relative c' {
+ \clef "bass"
+ r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 |
+}
+bassWords = \sopWords
+upper = \relative a' {
+ \clef "treble"
+ \global
+ r4 <a d fis>2 <a e' a>4 |
+ <d fis d'>4. <d fis d'>8 <a d a'>2 |
+ <g cis g'>4 <a d fis> <a cis e>2 |
+}
+lower = \relative c, {
+ \clef "bass"
+ \global
+ <d d'>4 <d d'>2 <cis cis'>4 |
+ <b b'>4. <b' b'>8 <fis fis'>2 |
+ <e e'>4 <d d'> <a' a'>2 |
+}
+
+\score {
+ << % combine ChoirStaff and PianoStaff in parallel
+ \new ChoirStaff <<
+ \new Staff = "sopranos" <<
+ \set Staff.instrumentName = "Soprano"
+ \new Voice = "sopranos" { \global \sopMusic }
+ >>
+ \new Lyrics \lyricsto "sopranos" { \sopWords }
+ \new Staff = "altos" <<
+ \set Staff.instrumentName = "Alto"
+ \new Voice = "altos" { \global \altoMusic }
+ >>
+ \new Lyrics \lyricsto "altos" { \altoWords }
+ \new Staff = "tenors" <<
+ \set Staff.instrumentName = "Tenor"
+ \new Voice = "tenors" { \global \tenorMusic }
+ >>
+ \new Lyrics \lyricsto "tenors" { \tenorWords }
+ \new Staff = "basses" <<
+ \set Staff.instrumentName = "Bass"
+ \new Voice = "basses" { \global \bassMusic }
+ >>
+ \new Lyrics \lyricsto "basses" { \bassWords }
+ >> % end ChoirStaff
+
+ \new PianoStaff <<
+ \set PianoStaff.instrumentName = "Piano "
+ \new Staff = "upper" \upper
+ \new Staff = "lower" \lower
+ >>
+ >>
+}
+@end lilypond
+
@node Building a score from scratch
@subsection Building a score from scratch
-UNTRANSLATED NODE: IGNORE ME
+Después de adquirir algo de soltura en la escritura del código de
+LilyPond, se dará cuenta de que es más fácil construir completamente
+una partitura partiendo de cero, que modificar una plantilla. También
+puede desarrollar su propio estilo de forma que se adapte al tipo de
+música que le apetezca. Veamos a continuación cómo confeccionar una
+partitura para un preludio de órgano, como ejemplo.
+
+Comenzamos con una sección para el encabezamiento. Aquí es donde van
+el título, nombre del compositor, etc., después van las definiciones
+de las variables, y finalmente el bloque de partitura. Comencemos a
+verlas por encima y más tarde completaremos los detalles.
+
+Utilizaremos los dos primeros compases del peludio de Bach basado en
+@emph{Jesu, meine Freude}, que está escrito para órgano con dos
+manuales y pedal. Tiene estos dos compases de música al final de la
+sección. La parte del manual superior tiene dos voces, y el inferior
+y el pedal, una voz cada uno. Así pues, necesitamos cuatro
+definiciones para la música y una más para definir el compás y la
+tonalidad:
+
+@example
+\version @w{"@version{}"}
+\header @{
+ title = "Jesu, meine Freude"
+ composer = "J S Bach"
+@}
+TimeKey = @{ \time 4/4 \key c \minor @}
+MusicaManualUnoVozUno = @{s1@}
+MusicaManualUnoVozDos = @{s1@}
+MusicaManualDos = @{s1@}
+MusicaPedal = @{s1@}
+
+\score @{
+@}
+@end example
+
+Por el momento hemos escrito tan sólo una nota espaciadora, @code{s1},
+en lugar de la música de verdad. La añadiremos más adelante.
+
+A continuación veamos qué va en el bloque de partitura.
+Sencillamente, reflejaremos la estructura de pentagramas que deseemos.
+La música de órgano se escribe por lo general en tres pentagramas, uno
+para cada uno de los manuales y otro para el pedal. Los pentagramas
+de los manuales se abarcan con una llave, así que los incluiremos en
+un grupo PianoStaff. La primera parte de manual tiene dos voces, y la
+segunda sólo una.
+
+@example
+ \new PianoStaff <<
+ \new Staff = "ManualUno" <<
+ \new Voice @{ \MusicaManualUnoVozUno @}
+ \new Voice @{ \MusicaManualUnoVozDos @}
+ >> % fun del contexto de Staff ManualUno
+ \new Staff = "ManualDos" <<
+ \new Voice @{ \MusicaManualDos @}
+ >> % fin del contexto de Staff ManualDos
+ >> % fin del contexto de PianoStaff
+@end example
+
+Después, tenemos que añadir un pentagrama para el órgano de pedal.
+Esto va por debajo del PianoStaff, pero debe ser simultáneo con él,
+por lo que escribimos dobles ángulos rodeando a los dos. Si esto se
+nos olvida, se producirá un error en el archivo log de registro. ¡Es
+un error muy común que cometerá antes o después! Intente copiar el
+ejemplo final que aparece al final de la sección, borre los dobles
+ángulos y procese el archivo para ver qué error produce.
+
+@example
+<< % el grupo PianoStaff y el pentagrama de Pedal son simultáneos
+ \new PianoStaff <<
+ \new Staff = "ManualUno" <<
+ \new Voice @{ \MusicaManualUnoVozUno @}
+ \new Voice @{ \MusicaManualUnoVozDos @}
+ >> % fin del contexto de Staff ManualUno
+ \new Staff = "ManualDos" <<
+ \new Voice @{ \MusicaManualDos @}
+ >> % fin del contexto de Staff ManualDos
+ >> % fin del contexto de PianoStaff
+ \new Staff = "OrganoPedal" <<
+ \new Voice @{ \MusicaOrganoPedal @}
+ >>
+>>
+@end example
+
+No es estrictamente necesario utilizar la construcción simultánea
+@code{<< >>} para el pentagrama del manual dos y el pentagrama del
+órgano de pedal, ya que contienen una única expresión, pero no hace
+daño y es una buena costumbre utilizar siempre dobles ángulos después
+de @code{\new Staff} cuando hay varias voces.
+
+Añadamos esta estructura al bloque de partitura, y ajustemos el
+sangrado de los márgenes. También escribimos las claves
+correspondientes, nos aseguramos de que las plicas de la segunda voz
+apuntan hacia abajo mediante @code{\voiceTwo} y escribimos el compás y
+la tonalidad en cada uno de los pentagramas usando nuestra variable
+previamente definida @code{\TimeKey}.
+@example
+\score @{
+ << % el grupo PianoStaff y el pentagrama de Pedal son simultáneos
+ \new PianoStaff <<
+ \new Staff = "ManualUno" <<
+ \TimeKey % establecer compás y tonalidad
+ \clef "treble"
+ \new Voice @{ \MusicaManualUnoVozUno @}
+ \new Voice @{ \voiceTwo \MusicaManualUnoVozDos @}
+ >> % fin del contexto de Staff ManualUno
+ \new Staff = "ManualDos" <<
+ \TimeKey
+ \clef "bass"
+ \new Voice @{ \MusicaManualDos @}
+ >> % fin del contexto de Staff ManualDos
+ >> % fin del contexto de PianoStaff
+ \new Staff = "OrganoPedal" <<
+ \TimeKey
+ \clef "bass"
+ \new Voice @{ \MusicaOrganoPedal @}
+ >> % fin del pentagrama de OrganoPedal
+ >>
+@} % end Score context
+@end example
+
+Con esto se completa la estructura. Toda música para órgano de tres
+pentagramas tendrá una estructura similar, aunque el número de voces
+puede variar. Todo lo que nos queda es añadir la música, y combinar
+todas las partes.
+
+@lilypond[quote,verbatim,ragged-right]
+\version "2.11.38"
+\header {
+ title = "Jesu, meine Freude"
+ composer = "J S Bach"
+}
+TimeKey = { \time 4/4 \key c \minor }
+ManualOneVoiceOneMusic = \relative g' {
+ g4 g f ees | d2 c2 |
+}
+ManualOneVoiceTwoMusic = \relative c' {
+ ees16 d ees8~ ees16 f ees s c8 d~ d c~ |
+ c c4 b8 c8. g16 c b c d |
+}
+ManualTwoMusic = \relative c' {
+ c16 b c8~ c16 b c g a8 g~ g16 g aes ees |
+ f ees f d g aes g f ees d e8~ ees16 f ees d |
+}
+PedalOrganMusic = \relative c {
+ r8 c16 d ees d ees8~ ees16 a, b g c b c8 |
+ r16 g ees f g f g8 c,2 |
+ }
+
+\score {
+ << % PianoStaff and Pedal Staff must be simultaneous
+ \new PianoStaff <<
+ \new Staff = "ManualOne" <<
+ \TimeKey % set time signature and key
+ \clef "treble"
+ \new Voice { \ManualOneVoiceOneMusic }
+ \new Voice { \voiceTwo \ManualOneVoiceTwoMusic }
+ >> % end ManualOne Staff context
+ \new Staff = "ManualTwo" <<
+ \TimeKey
+ \clef "bass"
+ \new Voice { \ManualTwoMusic }
+ >> % end ManualTwo Staff context
+ >> % end PianoStaff context
+ \new Staff = "PedalOrgan" <<
+ \TimeKey
+ \clef "bass"
+ \new Voice { \PedalOrganMusic }
+ >> % end PedalOrgan Staff
+ >>
+} % end Score context
+@end lilypond
--- SKELETON FILE --
-When you actually translate this file, please remove these lines as
-well as all `UNTRANSLATED NODE: IGNORE ME' lines.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 47348a04b57a0b63c40ae9debd95cfd717e03bb7
+ Translation of GIT committish: 66dde21fe63499f32a718f6098abe70e1429059b
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
UNTRANSLATED NODE: IGNORE ME
-@menu
-* Input files::
-* Common syntax issues TODO name?::
-* Other stuffs TODO move?::
+@menu
+* Input files::
+* Common syntax issues TODO name?::
+* Other stuffs TODO move?::
@end menu
-
@node Input files
@section Input files
UNTRANSLATED NODE: IGNORE ME
-@menu
-* File structure::
-* A single music expression::
-* Multiple scores in a book::
-* Extracting fragments of notation::
-* Including LilyPond files::
-* Text encoding::
-* Different editions from one source::
+@menu
+* File structure::
+* A single music expression::
+* Multiple scores in a book::
+* Extracting fragments of notation::
+* Including LilyPond files::
+* Text encoding::
+* Different editions from one source::
@end menu
-
@node File structure
@subsection File structure
UNTRANSLATED NODE: IGNORE ME
-@menu
-* Controlling direction and placement::
-* Distances and measurements MAYBE MOVE::
-* When to add a -::
+@menu
+* Controlling direction and placement::
+* Distances and measurements MAYBE MOVE::
+* When to add a -::
@end menu
-
@node Controlling direction and placement
@subsection Controlling direction and placement
UNTRANSLATED NODE: IGNORE ME
-@menu
-* Displaying LilyPond notation::
-* Skipping corrected music::
-* context list FIXME::
-* another thing FIXME::
-* Input modes FIXME::
+@menu
+* Displaying LilyPond notation::
+* Skipping corrected music::
+* context list FIXME::
+* another thing FIXME::
+* Input modes FIXME::
@end menu
@node Displaying LilyPond notation
@subsection Displaying LilyPond notation
@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@c This file is part of lilypond-program.tely
@ignore
- Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
+ Translation of GIT committish: 66dde21fe63499f32a718f6098abe70e1429059b
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
+ Translation of GIT committish: 66dde21fe63499f32a718f6098abe70e1429059b
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@c This file is part of lilypond-program.tely
@ignore
- Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
+ Translation of GIT committish: 66dde21fe63499f32a718f6098abe70e1429059b
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@c This file is part of lilypond-learning.tely
@ignore
- Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
+ Translation of GIT committish: 442e889ce5bd4f250270b992a1b105ed7fc078db
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@node Scheme tutorial
@appendix Scheme tutorial
-UNTRANSLATED NODE: IGNORE ME
+@funindex #
+@cindex Scheme
+@cindex GUILE
+@cindex Scheme, código en línea
+@cindex acceder a Scheme
+@cindex evaluar Scheme
+@cindex LISP
+LilyPond utiliza el lenguaje de programación Scheme, tanto como parte
+de la sintaxis del código de entrada, como para servir de mecanismo
+interno que une los módulos del programa entre sí. Esta sección es
+una panorámica muy breve sobre cómo introducir datos en Scheme. Si
+quiere saber más sobre Scheme, consulte
+@uref{http://@/www@/.schemers@/.org}.
+
+Lo más básico de un lenguaje son los datos: números, cadenas de
+caracteres, listas, etc. He aquí una lista de los tipos de datos que
+son de relevancia respecto de la entrada de LilyPond.
+
+@table @asis
+@item Booleanos
+Los valores Booleanos son Verdadero y Falso. Verdadero en Scheme es @code{#t}
+y Falso es @code{#f}.
+@funindex ##t
+@funindex ##f
+
+@item Números
+Los números se escriben de la forma normal, @code{1} es el número
+(entero) uno, mientras que @code{-1.5} es un número en coma flotante
+(un número no entero).
+
+@item Cadenas
+Las cadenas se encierran entre comillas:
+
+@example
+"esto es una cadena"
+@end example
+
+Las cadenas pueden abarcar varias líneas:
+
+@example
+"esto
+es
+una cadena"
+@end example
+
+También se pueden añadir comillas y saltos de línea con las llamadas
+secuencias de escape. La cadena @code{a dijo "b"} se escribe como
+
+@example
+"a dijo \"b\""
+@end example
+
+Los saltos de línea t las barras invertidas se escapan mediante
+@code{\n} y @code{\\} respectivamente.
+@end table
+
+
+En un archivo de música, los fragmentos de código de Scheme se
+esecriben con el signo de almohadilla @code{#}. Así, los ejemplos
+anteriores traducidos a LilyPond son:
+
+@example
+##t ##f
+#1 #-1.5
+#"esto es una cadena"
+#"esto
+es
+una cadena"
+@end example
+
+Durante el resto de esta sección, supondremos que los datos se
+introducen en un archivo de música, por lo que añadiremos almohadillas
+@code{#} en todas partes.
+
+Scheme se puede usar para hacer cálculos. Utiliza sintaxis
+@emph{prefija}. Sumar 1 y@tie{}2 se escribe como @code{(+ 1 2)} y no
+como el tradicional @math{1+2}.
+
+@lisp
+#(+ 1 2)
+ @result{} #3
+@end lisp
+
+La flecha @result{} muestra que el resultado de evaluar @code{(+ 1 2)}
+es@tie{}@code{3}. Los cálculos se pueden anidar; el resultado de una
+función se puede usar para otro cálculo.
+
+@lisp
+#(+ 1 (* 3 4))
+ @result{} #(+ 1 12)
+ @result{} #13
+@end lisp
+
+Estos cálculos son ejemplos de evaluaciones; una expresión como
+@code{(* 3 4)} se sustituye por su valor @code{12}. Algo similar
+ocurre con las variables. Después de haber definido una variable
+
+@example
+doce = #12
+@end example
+
+@noindent
+las variables se pueden usar también dentro de las expresiones, aquí
+
+@example
+veintiCuatro = #(* 2 doce)
+@end example
+
+@noindent
+el número 24 se almacena dentro de la variable @code{veintiCuatro}.
+La misma asignación se puede hacer también completamente en Scheme,
+
+@example
+#(define veintiCuatro (* 2 doce))
+@end example
+
+El @emph{nombre} de una variable también es una expresión, similar a
+un número o una cadena. Se introduce como
+
+@example
+#'veintiCuatro
+@end example
+
+@funindex #'symbol
+@cindex comillas en Scheme
+
+El apóstrofe @code{'} evita que el intérprete de Scheme sustituya
+@code{veintiCuatro} por @code{24}. En vez de esto, obtenemos el
+nombre @code{veintiCuatro}.
+
+Esta sintaxis se usará con mucha frecuencia, pues muchos de los trucos
+de presentación consisten en asignar valores (de Scheme) a variables
+internas, por ejemplo
+
+@example
+\override Stem #'thickness = #2.6
+@end example
+
+Esta isntrucción ajusta el aspecto de las plicas. El valor @code{2.6}
+se pone dentro de la variable @code{thickness} de un objeto
+@code{Stem}. @code{thickness} se mide a partir del grosor de las
+líneas del pentagrama, y así estas plicas serán @code{2.6} veces el
+grosor de las líneas del pentagrama. Esto hace que las plicas sean
+casi el doble de gruesas de lo normal. Para distinguir entr las
+variables que se definen en los archivos de entrada (como
+@code{veintiCuatro} en el ejemplo anterior) y las variables de los
+objetos internos, llamaremos a las últimas @q{propiedades} y a las
+primeras @q{variables.} Así, el objeto plica tiene una propiedad
+@code{thickness} (grosor), mientras que @code{veintiCuatro} es una
+variable.
+
+@cindex propiedades frente a variables
+@cindex variables frente a propiedades
+
+Los desplazamientos bidimensionales (coordenadas X e Y) así como los
+tamaños de los objetos (intervalos con un punto izquierdo y otro
+derecho) se introducen como @code{parejas}. Una pareja@footnote{En la
+terminología de Scheme, la pareja se llama @code{cons}, y sus dos
+elementos se llaman @code{car} y @code{cdr} respectivamente.} se
+introduce como @code{(first . second)} y, como los símbolos, se deben
+preceder de un apóstrofe,
+
+@example
+\override TextScript #'extra-offset = #'(1 . 2)
+@end example
+
+Esto asigna la pareja (1, 2) a la propiedad @code{extra-offset} del
+objeto TextScript. Estos números se miden en espacios de pentagrama,
+y así esta instrucción mueve el objeto un espacio de pentagrama a la
+derecha, y dos especios hacia arriba.
+
+Los dos elementos de una pareja pueden ser valores arbitrarios, por
+ejemplo
+
+@example
+#'(1 . 2)
+#'(#t . #f)
+#'("bla-bla" . 3.14159265)
+@end example
+
+Una lista se escribe encerrando sus elementos entre paréntesis, y
+añadiendo un apóstrofe. Por ejemplo,
+
+@example
+#'(1 2 3)
+#'(1 2 "cadena" #f)
+@end example
+
+Todo el tiempo hemos estado usando listas. Un cálculo, como @code{(+
+1 2)} también es una lista (que contiene el símbolo @code{+} y los
+números 1 y@tie{}2). Normalmente, las listas se interpretan como
+cálculos, y el intérprete de Scheme sustituye el resultado del
+cálculo. Para escribir una lista, detenemos la evaluación. Esto se
+hace precediendo la lista por un apóstrofe @code{'}. Así, para los
+cálculos no usamos ningún apóstrofe.
+
+Dentro de una lista o pareja precedida de apóstrofe, no hay necesidad
+de escribir ningún apóstrofe más. Lo siguiente es una pareja de
+símbolos, una lista de símbolos y una lista de listas respectivamente:
+
+@example
+#'(stem . head)
+#'(staff clef key-signature)
+#'((1) (2))
+@end example
+
+
+@menu
+* Tweaking with Scheme::
+@end menu
+
+@node Tweaking with Scheme
+@appendixsec Tweaking with Scheme
+
+Hemos visto cómo la salida de LilyPond se puede modificar
+profundamente usando instrucciones como @code{\override TextScript
+#'extra-offset = ( 1 . -1)}. Pero tenemos incluso mucho más poder si
+utilizamos Scheme. Para ver una explicación completa de esto,
+consulteel @ref{Scheme tutorial}, y @ruser{Interfaces for
+programmers}.
+
+Podemos usar Scheme simplemente para sobreescribir instrucciones con
+@code{\override},
+
+@c This isn't a valid example with skylining
+@c It works fine without padText -td
+
+@ignore
+@lilypond[quote,verbatim,ragged-right]
+padText = #(define-music-function (parser location padding) (number?)
+#{
+ \once \override TextScript #'padding = #$padding
+#})
+
+\relative c''' {
+ c4^"piu mosso" b a b
+ \padText #1.8
+ c4^"piu mosso" d e f
+ \padText #2.6
+ c4^"piu mosso" fis a g
+}
+@end lilypond
+@end ignore
+
+Lo podemos usar para crear instrucciones nuevas:
+
+@c Check this is a valid example with skylining
+@c It is - 'padding still works
+
+@lilypond[quote,verbatim,ragged-right]
+tempoMark = #(define-music-function (parser location padding marktext)
+ (number? string?)
+#{
+ \once \override Score . RehearsalMark #'padding = $padding
+ \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
+ \mark \markup { \bold $marktext }
+#})
+
+\relative c'' {
+ c2 e
+ \tempoMark #3.0 #"Allegro"
+ g c
+}
+@end lilypond
+
+Incluso se le pueden pasar expresiones musicales:
+
+@lilypond[quote,verbatim,ragged-right]
+pattern = #(define-music-function (parser location x y) (ly:music? ly:music?)
+#{
+ $x e8 a b $y b a e
+#})
+
+\relative c''{
+ \pattern c8 c8\f
+ \pattern {d16 dis} { ais16-> b\p }
+}
+@end lilypond
--- SKELETON FILE --
-When you actually translate this file, please remove these lines as
-well as all `UNTRANSLATED NODE: IGNORE ME' lines.
@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: d9b4bfc69674eb4ed7b8c6eaa0b646f00eae6c8d
+ Translation of GIT committish: 66dde21fe63499f32a718f6098abe70e1429059b
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@c -*- coding: utf-8; mode: texinfo; -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 0204d415337bf74ae8626f396e6ea3cc5669c8f2
+ Translation of GIT committish: 13290c3922962e4538d3acaf1f7abe14fce6bbff
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@menu
+* Tweaking basics::
+* The Internals Reference manual::
* Moving objects::
* Fixing overlapping notation::
* Common tweaks::
* Avoiding tweaks with slower processing::
@end menu
+@node Tweaking basics
+@section Tweaking basics
+
+@menu
+* Introduction to tweaks::
+* Objects and interfaces::
+* Naming conventions of objects and properties::
+* Tweaking methods::
+@end menu
+
+@node Introduction to tweaks
+@subsection Introduction to tweaks
+
+El @q{Trucaje} es un término de LilyPond que denota los diversos
+métodos que el usuario tiene a su disposición para modificar el
+proceso de interpretación del archivo de entrada y cambiar la
+apariencia de la salida impresa. Algunos trucos son muy fáciles de
+usar; otros son más complejos. Pero en su conjunto, los métodos de
+trucaje disponibles posibilitan conseguir casi cualquier apariencia
+que deseemos en la música impresa.
+
+En esta sección vamos a estudiar los conceptos básicos que se
+necesitan para comprender el trucaje. Más tarde daremos un amplio
+abanico de instrucciones listas para usar, que podrá simplemente
+copiar para obtener el mismo efecto en sus partituras, y al mismo
+tiempo mostraremos la forma de construir dichas instrucciones para que
+pueda aprender cómo desarrollar sus propios trucos.
+
+Antes de comenzar con este capítulo, quizá quiera echar un vistazo a
+la sección @ref{Contexts and engravers}, pues los Contextos, los
+Grabadores y las Propiedades que se contienen en ellos son
+fundamentales para comprender y construir los trucos.
+
+@node Objects and interfaces
+@subsection Objects and interfaces
+
+@cindex objetos
+@cindex grobs
+@cindex selectores
+@cindex interfaces
+
+El trucaje consiste en modificar el funcionamiento y estructura
+interna del programa LilyPond, por lo que en primer lugar
+introduciremos algunos términos que se usan para describir dichas
+operaciones y estructuras internas.
+
+El término @q{Objeto} es un término genérico que se usa para referirse
+a la multitud de estructuras internas que LilyPond construye durante
+el procesado de un archivo de entrada. Así, cuando se encuentra una
+instrucción como @code{\new Staff}, se construye un objeto nuevo del
+tipo @code{Staff}. Entonces, este objeto @code{Staff} contiene todas
+las propiedades asociadas con ese pentagrama en particular, por
+ejemplo, su nombre y su armadura, además de otros detalles de los
+grabadores que se han asignado para que operen dentro del contexto del
+pentagrama. De forma similar, hay objetos que guardan las propieades
+de todos los demás contextos, como objetos de @code{Voice}, objetos de
+@code{Score}, objetos de @code{Lyrics}, así como objetos que
+representan todos los elementos notacionales como líneas divisorias,
+cabezas de las notas, ligaduras, indicaciones dinámicas, etc. Cada
+objeto tiene su propio conjunto de valores de propiedad.
+
+Ciertos tipos de objetos reciben nombres especiales. Los objetos que
+representan elementos de notación sobre la salida impresa como cabezas
+de notas, plicas, ligaduras de expresión y de unión, digitaciones,
+claves, etc. reciben el nombre de @q{Objetos de presentación}, a
+menudo conocidos como @q{Objetos gráficos}, o abreviadamente
+@q{Grobs}. Aún son objetos en el sentido genérico que hemos
+mencionado, y también todos ellos tienen propiedades asociadas, como
+su posición, tamaño, color,etc.
+
+Ciertos objetos de presentación son aún más especializados. Las
+ligaduras de fraseo, los reguladores, las indicaciones de octava alta
+y baja, y muchos otros objetos gráficos no están situados en un solo
+lugar: tienen un punto de inicio, un punto de final, y quizá otras
+propiedades relacionadas con su forma. Los objetos con una forma
+extendida como estos, reciben el nombre de «Objetos de extensión» o
+@q{Spanners}.
+
+Aún falta por explicar qué son los @q{Interfaces}. Muchos objetos,
+incluso aunque son bastante diferentes, comparten funcionalidades que
+se deben procesar de la misma manera. Por ejemplo, todos los objetos
+gráficos tienen un color, un tamaño, una posición, etc., y todas estas
+propiedades se procesan de la misma forma durante la interpretación
+del archivo de entrada por parte de LilyPond. Para simplificar estas
+operaciones internas, estas acciones t propiedades comunes se agrupan
+en un objeto llamado @code{grob-interface}, interface de grob. Hay
+muchas otras agrupaciones de propiedades comunes como ésta, y cada
+unoa recibe un nombre que acaba en @code{interface}. En total hay más
+de 100 interfaces de éstos. Veremos más adelante porqué esto es del
+interés y de utilidad para el usuario.
+
+Estos son, en fin, los términos principales relativos a los objetos
+que vamos a utilizar en este capítulo.
+
+@node Naming conventions of objects and properties
+@subsection Naming conventions of objects and properties
+
+Ya hemos visto ciertas convenciones de nomenclatura de objetos, en la
+sección @ref{Contexts and engravers}. En este lugar, para más fácil
+referencia, presentamos una lista de los tipos de objetos y
+propiedades más comunes, junto con las convenciones según las cuales
+reciben su nombre, y un par de ejemplos de nombres reales. Hemos
+utilizado una «A» mayúscula para denotar cualquier carácter alfabético
+en mayúsculas, y «aaa» para cualquier número de caracteres alfabéticos
+en minúscula. Otros caracteres se utilizan literalmente como están.
+
+@multitable @columnfractions .33 .33 .33
+@headitem Objeto o tipo de propiedad
+ @tab Convención de nomenclatura
+ @tab Ejemplo
+@item Contextos
+ @tab Aaaa o AaaaAaaaAaaa
+ @tab Staff, GrandStaff
+@item Objetos de presentación
+ @tab Aaaa o AaaaAaaaAaaa
+ @tab Slur, NoteHead
+@item Grabadores
+ @tab Aaaa_aaa_engraver
+ @tab Clef_engraver, Note_heads_engraver
+@item Interfaces
+ @tab aaa-aaa-interface
+ @tab grob-interface, break-aligned-interface
+@item Propiedades de contextos
+ @tab aaa o aaaAaaaAaaa
+ @tab alignAboveContext, skipBars
+@item Propiedades de objetos de presentación
+ @tab aaa o aaa-aaa-aaa
+ @tab direction, beam-thickness
+@end multitable
+
+Como podremos ver en breve, las propiedades de distintos tipos de
+objeto se modifican por parte de diferentes instrucciones; así pues,
+es útil poder reconocer el tipo de objeto a partir de sus nombres de
+propiedad.
+
+@node Tweaking methods
+@subsection Tweaking methods
+
+@strong{La instrucción \override}
+
+@cindex override, instrucción
+@funindex \override
+
+Ya hemos visto las instrucciones @code{\set} y @code{\with}, que se
+usan para cambiar las propiedades de los @strong{contextos} y para
+quitar y poner @strong{grabadores}, en @ref{Modifying context
+properties} y @ref{Adding and removing engravers}. Ahora debemos
+examinar algunas instrucciones importantes más.
+
+La instrucción que cambia las propiedades de los @strong{objetos de
+presentación} es @code{\override}. Puesto que esta instrucción debe
+modificar propiedades internas que se encuentran en un lugar profundo
+dentro de LilyPond, su sintaxis no es tan simple como la del resto de
+las instrucciones que hemos visto hasta ahora. Tiene que saber
+exactamente qué propiedad de qué objeto y en qué contexto se debe
+modificar, y cuál debe ser su nuevo valor. Veamos cómo se hace.
+
+La sintaxis genérica de esta instrucción es:
+
+@example
+\override @emph{contexto}.@emph{objeto_de_presentación}
+ #'@emph{propiedad_de_presentación} = #@emph{valor}
+@end example
+
+@noindent
+Esto establecerá la propiedad de nombre
+@emph{propiedad_de_presentación} del objeto de presentación con el
+nombre @emph{objeto_de_presentación}, que es miembro del contexto
+@emph{contexto}, al valor @emph{valor}.
+
+El @emph{contexto} se puede omitir (y normalmente así es) cuando el
+contexto requerido se encuentra implicado sin ambigüedad y es uno de
+los contextos del nivel más bajo, es decir: @code{Voice},
+@code{ChordNames} o @code{Lyrics}, y lo omitiremos en muchos de los
+ejemplos siguientes. Veremos más tarde cuándo se debe especificar.
+
+Las últimas secciones tratan de forma exhaustiva las propiedades y sus
+valores, pero para ilustrar el formato y utilización de estas
+iinstrucciones usaremos sólo unas cuantas propiedades y valores
+sencillos que sean fáciles de entender.
+
+Por ahora no se preocupe por el @code{#'}, que debe anteponerse a la
+propiedad de presentación, y el @code{#}, que debe preceder al valor.
+Deben estar presentes siempre y de esa forma exacta. Es la
+instrucción de uso más común dentro del trucaje, y durante la mayor
+parte del resto de este capítulo presentaremos ejemplos de cómo se
+usa. A continuación hay un ejemplo sencillo para cambiar el color de
+una cabeza:
+
+@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{La instrucción \revert}
+
+@cindex revert, instrucción
+@funindex \revert
+
+Una vez sobreescrita, la proopiedad retiene su nuevo valor hasta que
+se sobreescribe de nuevo o se encuentra una instrucción
+@code{\revert}. La instrucción @code{\revert} tiene la siguiente
+sintaxis y ocasiona que el valor de la propiedad se devuelva a su
+valor predeterminado original; observe que no es a su valor previo si
+se han utilizado varias instrucciones @code{\override}.
+
+@example
+\revert @emph{contexto}.@emph{objeto_de_presentación} #'@emph{propiedad_de_presentación}
+@end example
+
+Una vez más, igual que @emph{contexto} dentro de la instrucción
+@code{\override}, con frecuencia no es necesario especificar el
+@emph{contexto}. Se omitirá en muchos de los ejemplos siguientes.
+Aquí devolvemos el color de la cabeza al valor predeterminado para las
+dos últimas notas:
+
+@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{El prefijo \once}
+
+Tanto la instrucción @code{\override} como @code{\set} se pueden
+preceder por @code{\once}. Esto ocasiona que la siguiente instrucción
+@code{\override} o @code{\set} sea efectiva solamente durante el
+tiempo musical en curso y antes de que la propiedad vuelva a tener
+otra vez su valor predeterminado. Utilizando el mismo ejemplo,
+podemos cambiar el color de una sola nota de la siguiente manera:
+
+@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{La instrucción \overrideProperty}
+
+@cindex overrideProperty, instrucción
+@funindex \overrideProperty
+
+Hay otra forma para la instrucción de sobreescritura,
+@code{\overrideProperty}, que ocasionalmente es necesaria. La
+mencionamos aquí con un propósito de exhaustividad, pero para ver más
+detalles consulte @ruser{Difficult tweaks}.
+@c Maybe explain in a later iteration -td
+
+@strong{La instrucción \tweak}
+
+@cindex tweak, instrucción
+@funindex \tweak
+
+La última instrucción de trucaje que está disponible es @code{\tweak}.
+Se debe utilizar para cambiar las propiedades de objetos que suceden
+en el mismo momento musical, como las notas de un acorde. El uso de
+@code{\override} para la sobreescritura afectaría a todas las notas
+del acorde, mientras que @code{\tweak} afecta solamente al siguiente
+elemento del flujo de entrada.
+
+He aquí un ejemplo. Suponga que queremos cambiar el tamaño de la nota
+intermedia (el Mi) en un acorde de Do mayor. En primer lugar, veamos
+lo que haría @code{\once \override}:
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+ <c e g>4
+ \once \override NoteHead #'font-size = #-3
+ <c e g>
+ <c e g>
+@end lilypond
+
+Vemos que la sobreescritura con override afecta a @emph{todas} las
+notas del acorde. Esto es así porque todas las notas de un acorde
+ocurren en el mismo @emph{momento musical}, y la acción de
+@code{\once} es aplicar la sobreescritura a todos los oobjetos de
+presentación del tipo especificado que ocurren en el mismo momento
+musical que la propia instrucción de sobreescritura @code{\override}.
+
+LA instrucción @code{\tweak} opera de una forma distinta. Actúa sobre
+el elemento inmediatamente siguiente dentro del flujjo de entrada.
+Sin embargo, es efectivo solamente sobre objetos que se crean
+directamente a partir del flujo de entrada, en esencia las cabezas y
+las articulaciones (los objetos como las plicas y las alteraciones se
+crean con posterioridad y no se pueden trucar de esta forma). Es más,
+cuando se aplica a las cabezas de las notas, éstas @emph{deben} estar
+dentro de un acorde, es decir, dentro de ángulos simples, así que para
+trucar una sola nota la instrucción @code{\tweak} se debe colocar
+dentro de ángulos simples junto con la nota.
+
+Así pues, volviendo a nuestro ejemplo, el tamaño de la nota intermedia
+se cambiaría de la siguiente forma:
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+ <c e g>4
+ <c \tweak #'font-size #-3 e g>4
+@end lilypond
+
+Observe que la sintaxis de @code{\tweak} es diferente de la de la
+instrucción @code{\override}. Ni el contexto ni el objeto de
+presentación se deben especificar; de hecho, generaría un error
+hacerlo. Los dos están implícitos por el siguiente elemento del flujo
+de entrada. Así que la sintaxis genérica de la instrucción
+@code{\tweak} es, simmplemente:
+
+@example
+\tweak #'@emph{propiedad_de_presentación} = #@emph{valor}
+@end example
+
+Una instrucción @code{\tweak} también se puede usar para modificar
+sólo una de una serie de articulaciones, como se muestra aquí:
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+a ^Black
+ -\tweak #'color #red ^Red
+ -\tweak #'color #green _Green
+@end lilypond
+
+Observe que la instrucción @code{\tweak} debe venir precedida de una
+marca de articulación como si ella misma fuera una articulación.
+
+@cindex grupos especiales anidados
+@cindex tresillos anidados
+@cindex corchete del grupo especial
+@cindex grupo especial, corchete de
+@cindex tresillo, corchete de
+@funindex TupletBracket
+
+La instrucción @code{\tweak} también se debe usar para cambiar la
+apariencia de uno solo de un conjunto de grupos especiales anidados
+que comiencen en el mismo instante musical. En el siguiente ejemplo,
+el corchete del tresillo largo y el primero de los tres corchetes
+cortos empiezan en el mismo momento musical, y por ello cualquier
+instrucción @code{\override} se aplicaría a los dos. En el ejemplo se
+usa @code{\tweak} para distinguir entre ellos. La primera instrucción
+@code{\tweak} especifica que el corchete del tresillo largo se debe
+colocar por encima de las notas y el segundo especifica que el número
+del tresillo se debe imprimir en rojo sobre el corchete del primer
+tresillo corto.
+
+@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
+
+Encontrará más detalles de la instrucción @code{\tweak} en
+@ruser{Objects connected to the input}.
+
+Si los grupos anidados no comienzan en el mismo momento, su apariencia
+se puede modificar de la forma usual mediante instrucciones
+@code{\override}:
+
+@c NOTE Tuplet brackets collide if notes are high on staff
+@c See issue 509
+@lilypond[quote,ragged-right,verbatim,fragment,relative=1]
+\times 2/3 { c8[ c c]}
+\once \override TupletNumber
+ #'text = #tuplet-number::calc-fraction-text
+\times 2/3 {
+ c[ c]
+ c[ c]
+ \once \override TupletNumber #'transparent = ##t
+ \times 2/3 { c8[ c c] }
+\times 2/3 { c8[ c c]}
+}
+@end lilypond
+
+@node The Internals Reference manual
+@section The Internals Reference manual
+
+@cindex Internals Reference
+
+@menu
+* Properties of layout objects::
+* Properties found in interfaces::
+* Types of properties::
+@end menu
+
+@node Properties of layout objects
+@subsection Properties of layout objects
+
+@cindex propiedades de los objetos de presentación
+@cindex propiedades de los grobs
+@cindex grobs, propiedades de
+@cindex presentación, propiedades de los objetos de
+
+Suponga que tiene una partitura con una ligadura de expresión que para
+su gusto es demasiado fina y quiere trazarla un poco más gruesa. ¿Cómo
+debe proceder? Ya sabe, por las afirmaciones anteriores acerca de la
+flexibilidad de LilyPond, que tal posibilidad existe, y seguramente
+piensa que una cierta instrucción de sobreescritura @code{\override}
+será necesaria. Pero ¿existe una propiedad de grosor para las
+ligaduras? y, si la hay, ¿cómo se puede modificar? Aquí es donde
+interviene el Manual de Funcionamiento Interno. Contiene toda la
+información que puede necesitar para construir ésta y todas las demás
+instrucciones @code{\override}, de sobreescritura.
+
+Una advertencia antes de dirigir nuestra mirada a la referencia de
+funcionamiento interno. Éste es un documento de @strong{referencia},
+lo que significa que hay pocas o ninguna explicación en él: su
+propósito es presentar la información de forma precisa y concisa. Por
+tanto, podrá parecerle desalentador a primera vista. ¡No se preocupe!
+La guía y las explicaciones que presentamos aquí le permitirán extraer
+la información de la referencia de funcionamiento interno por sí mismo
+con tan sólo algo de práctica.
+
+@cindex sobreescritura, ejemplo de
+@cindex Referencia de Funcionamiento Interno, ejemplo de utilización
+
+Utilicemos un ejemplo concreto con un sencillo fragmento de música
+real:
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+ \time 6/8
+ {
+ r4 b8 b[( g]) g |
+ g[( e]) e d[( f]) a |
+ a g
+ }
+ \addlyrics {
+ The man who feels love's sweet e -- mo -- tion
+ }
+}
+@end lilypond
+
+Suponga ahora que decidimos que nos gustan las ligaduras algo más
+gruesas. ¿Es posible? La ligadura es, ciertamente, un objeto de
+presentación, así que la cuestión es @q{¿Hay una propiedad
+perteneciente a las ligaduras de expresión que controle su grosor?}
+Para responder a esta pregunta debemos mirar el manual de Referencia
+de Funcionamiento Interno, abreviadamente RFI@footnote{@strong{IR}
+(Internals Reference) en inglés}.
+
+El RFI de la versión de LilyPond que está usando se puede encontrar en
+la página web de LilyPond en @uref{http://lilypond.org}. Vaya a la
+página de la documentación y siga el enlace Manual de Referencia de
+Funcionamiento Interno (RFI). Para nuestros propósitos pedagógicos
+sería mejor que utilizase la versión html, no la @q{en una sola
+página} ni el PDF. Para que los siguientes párrafos tengan algún
+sentido deberá consultarlo realmente al tiempo que lee.
+
+@c Link names in English as these pages are not yet translated
+Bajo el encabezamiento @strong{Top} podrá ver cinco enlaces.
+Seleccione el enlace @emph{Backend}, que es donde se encuentra la
+información sobre los objetos de presentación. Una vez allí, bajo el
+encabezamiento @strong{Backend}, siga el enlace @emph{All layout
+objects}. La página que aparece relaciona todos los objetos de
+presentación que se usan en su versión de LilyPond, en orden
+alfabético. Siga el enlace Slur (ligadura de expresión), y aparecerán
+relacionadas las propiedades de las ligaduras de expresión o Slurs.
+
+(Una forma alternativa de encontrar esta página es a partir de la
+Referencia de la Notación. En una de las páginas que tratan de las
+ligaduras de expresión podrá encontrar un enlace al manual de
+referencia del funcioonamiento interno. Este enlace le llevará
+directamente a esta página, aunque con frecuencia es más fácil ir
+directamente al RFI y buscar allí.)
+
+Esta página sobre las ligaduras de expresión dentro del manual RFI nos
+dice en primer lugar que los objetos Slur se crean por el grabador
+Slur_engraver. A continuación relaciona los ajustes estándar.
+Observe que @strong{no} están en orden alfabético. Navegue hacia
+abajo buscando una propiedad que pudiera controlar el grosor de las
+ligaduras, y encontrará
+
+@example
+@code{thickness} (number)
+ @code{1.2}
+ Line thickness, generally measured in @code{line-thickness}
+@end example
+
+Esto promete ser una buena opción para cambiar el grosor. Nos dice
+que el valor de @code{thickness} es un simple @emph{número}, que el
+valor predeterminado es 1.2, y que las unidades están dentro de otra
+propiedad llamada @code{line-thickness}.
+
+Como dijimos con anterioridad, existen entre pocas y ninguna
+explicación en el RFI, pero ya tenemos información suficiente para
+probar a cambiar el grosor de la ligadura. Vemos que el nombre del
+objeto de presentación es @code{Slur}, que el nombre de la propiedad
+que debemos cambiar es @code{thickness} y que el nuevo valor debe ser
+un número algo más grande que 1.2 si queremos hacer las ligaduras más
+gruesas.
+
+Ahora podemos construir la instrucción de sobreescritura
+@code{\override} simplemente mediante la sustitución de los valores
+que hemos encontrado para los nombres, omitiendo el contexto.
+Usaremos un valor muy grande para el grosor al principio, para estar
+seguros de que la instrucción está funcionando. Obtenemos lo
+siguiente:
+
+@example
+\override Slur #'thickness = #5.0
+@end example
+
+¡No olvide el @code{#'} antes del nombre de la propiedad y @code{#}
+antes del valor nuevo!
+
+La pregunta final es @q{¿Dónde se debe colocar esta instrucción?}
+Aunque nos falta seguridad y estamos todavía aprendiendo, la mejor
+respuesta es: @q{Dentro de la música, antes de la primera ligadura y
+cerca de ella.} Hagámoslo así:
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+ \time 6/8
+ {
+ % Increase thickness of all following slurs from 1.2 to 5.0
+ \override Slur #'thickness = #5.0
+ r4 b8 b[( g]) g |
+ g[( e]) e d[( f]) a |
+ a g
+ }
+ \addlyrics {
+ The man who feels love's sweet e -- mo -- tion
+ }
+}
+@end lilypond
+
+@noindent
+y podemos ver que la ligadura, es sin duda, más pesada.
+
+Así pues, ésta es la forma básica de construir instrucciones
+@code{\override} o de sobreescritura. Existen unas cuantas
+complicaciones más con las que nos encontraremos en secciones
+posteriores, pero ahora conoce todos los principios esenciales que
+necesita para hacerlo por sí mismo (aunque aún necesita algo de
+práctica). La cual vendrá proporcionada por los ejemplos que vienen a
+continuación.
+
+@subheading Finding the context
+@cindex contexto, encontrar
+
+Pero en primer lugar ¿qué habría pasado si hubiésemos tenido que
+especificar el contexto? ¿Cuál sería? Podemos suponer que las
+ligaduras están en el contexto de Voz, por estar claramente asociados
+de manera estrecha con las líneas individuales de música, pero
+¿podemos estar seguros? Para averiguarlo, vayamos de nuevo al inicio
+de la página del RFI que describe las ligaduras (Slur), donde dice
+@q{Slur objects are created by: Slur engraver} («Los objetos de
+ligadura de expresión se crean por: el grabador Slur»). Así pues, las
+ligaduras de expresión se crean en cualquier contexto en el que se
+encuentre el grabador @code{Slur_engraver}. Siga el enlace a la
+página del grabador @code{Slur_engraver}. Al final del todo, dice que
+el grabador @code{Slur_engraver} es parte de cinco contextos de voz,
+incluido el contexto de voz estándar, @code{Voice}, por lo que nuestra
+suposición era acertada. Y a causa de que @code{Voice} es uno de los
+contextos de más bajo nivel que se encuentra implícito sin ambigüedad
+por el hecho de que estamos escribiendo notas, podemos omitirlo en
+este lugar concreto.
+
+@subheading Overriding once only
+
+@cindex sobreescritura por una sola vez
+@cindex once override
+@funindex \once
+
+Como puede ver, @emph{todas} las ligaduras son más gruesas en el
+último ejemplo. Pero ¿y si quisiéramos que solamente la primera
+ligadura fuese más gruesa? Esto se consigue con la instrucción o
+prefijo @code{\once}. Colocado inmediatamente antes de la instrucción
+@code{\override} ocasiona que solamente cambie la ligadura que
+comienza en la nota @strong{inmediata siguiente}. Si la nota
+inmediata siguiente no da inicio a una ligadura, la instrucción no
+tiene niingún efecto en absoluto: no se recuerda hasta que se
+encuentre alguna ligadura, sino que simplemente se ignora. Así pues,
+la instrucción que lleva @code{\once} se debe reposicionar de la forma
+siguiente:
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+ \time 6/8
+ {
+ r4 b8
+ % Increase thickness of immediately following slur only
+ \once \override Slur #'thickness = #5.0
+ b[( g]) g |
+ g[( e]) e d[( f]) a |
+ a g
+ }
+ \addlyrics {
+ The man who feels love's sweet e -- mo -- tion
+ }
+}
+@end lilypond
+
+@noindent
+Hemos hecho que ahora solamente la primera ligadura sea más gruesa.
+
+La instrucción o prefijo @code{\once} también se puede usar antes de
+la instrucción @code{\set}.
+
+@subheading Reverting
+
+@cindex revert
+@cindex predeterminadas, devolver a las propiedades
+@funindex \revert
+
+Finalmente ¿y si quisiéramos que solamente las dos primeras ligaduras
+fuesen más gruesas? En fin; podríamos usar dos instrucciones, cada
+una de ellas precedida por el prefijo @code{\once}, situadas
+inmediatamente antes de cada una de las notas en que comienzan las
+ligaduras:
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+ \time 6/8
+ {
+ r4 b8
+ % Increase thickness of immediately following slur only
+ \once \override Slur #'thickness = #5.0
+ b[( g]) g |
+ % Increase thickness of immediately following slur only
+ \once \override Slur #'thickness = #5.0
+ g[( e]) e d[( f]) a |
+ a g
+ }
+ \addlyrics {
+ The man who feels love's sweet e -- mo -- tion
+ }
+}
+@end lilypond
+
+@noindent
+o podríamos omitir la instrucción prefija @code{\once} y utilizar la
+instrucción @code{\revert} (restablecer) para devolver la propiedad
+del grosor, @code{thickness}, a su valor predeterminado después de la
+segunda ligadura:
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+ \time 6/8
+ {
+ r4 b8
+ % Increase thickness of all following slurs from 1.2 to 5.0
+ \override Slur #'thickness = #5.0
+ b[( g]) g |
+ g[( e])
+ % Revert thickness of all following slurs to default of 1.2
+ \revert Slur #'thickness
+ e d[( f]) a |
+ a g
+ }
+ \addlyrics {
+ The man who feels love's sweet e -- mo -- tion
+ }
+}
+@end lilypond
+
+@noindent
+la instrucción @code{\revert} se puede utilizar para devolver
+cualquier propiedad que se haya cambiado con @code{\override} a su
+valor predeterminado. Puede utilizar el método que mejor se adapte a
+aquello que quere hacer.
+
+Así finaliza nuestra introducción al manual de RFI, y el método básico
+de trucaje. A continuación, en las últimas secciones de este capítulo
+encontrará varios ejemplos, en parte para introducirle en algunas de
+las posibilidades adicionales del manual RFI, y en parte para
+proporcionarle más práctica en cómo extraer información de él. Estos
+ejemplos irán conteniendo cada vez menos palabras de guía y
+explicación.
+
+@node Properties found in interfaces
+@subsection Properties found in interfaces
+
+@cindex propiedades de los interfaces
+@cindex interfaces, propiedades
+
+Suponga ahora que queremos imprimir la letra de la canción en cursiva.
+¿Qué forma de instrucción @code{\override} necesitamos para hacerlo?
+En primer lugar miramos en la página del RFI que relaciona todos los
+objetos, @q{All layout objects}, como antes, y buscamos un objeto que
+pueda conteolar la letra de la canción. Encontramos @code{LyricText},
+que parece adecuado. Al seguir este enlace se presentan las
+propiedades ajustables para el texto de la letra. Estos incluyen
+@code{font-series} y @code{font-size}, pero nada que pudiera aplicar
+una forma cursiva. Esto es porque la propiedad de la forma es común a
+todos los objetos de fuente tipográfica, y por tanto, en vez de
+incluirlo en cada uno de los objetos de preesentación, se agrupa junto
+con otras propiedades comunes similares y se deposita en un
+@strong{Interface}, el interface de las fuentes tipográficas
+@code{font-interface}.
+
+Por tanto, ahora necesitamos aprender cómo encontrar las propiedades
+de los interfaces, y descubrir qué objetos usan estas propiedades de
+interface.
+
+Mire de nuevo la página del RFI que decribe a LyricText. Al final de
+la página hay una lista de enlaces (en las versiones de html del RFI)
+a los interfaces que LyricText contempla. La lista tiene siete
+elementos, entre ellos @code{font-interface}. Al seguir este enlace
+llegamos a las propiedades asociadas con este interface, que también
+son propiedades de todos los objetos que lo llevan, entre ellos
+LyricText.
+
+Ahora vemos todas las propiedades ajustables por el usuario que
+controlan las tipografías, entre ellas @code{font-shape(symbol)},
+donde @code{symbol} se puede establecer a @code{upright} (recta),
+@code{italics} (cursiva)o @code{caps} (mayúsculas pequeñas).
+
+Observará que @code{font-series} y @code{font-size} también se
+encuentran aquí relacionadas. Esto inmediatamente hace que surja la
+pregunta: ¿Por qué están las propiedades comunes de tipografía
+@code{font-series} y @code{font-size} relacionadas bajo
+@code{LyricText} así como bajo el interface @code{font-interface} pero
+@code{font-shape} no lo está? La respuesta es que @code{font-series}
+y @code{font-size} se cambian a partir de sus valores predeterminados
+globales cuando se crea un objeto @code{LyricText}, pero
+@code{font-shape} no lo hace. Entonces los elementos de la lista
+@code{LyricText} le dicen los valores para esas dos propiedades que
+son de aplicación para @code{LyricText}. Otros objetos que contemplan
+@code{font-interface} establecerán dichas propiedades de forma
+diferente cuando se crean.
+
+Veamos si ahora podemos construir la instrucción @code{\override} para
+cambiar la letra a cursiva. El objeto es @code{LyricText}, la
+propiedad es @code{font-shape} y el valor es @code{italic}. Igual que
+antes, omitiremos el contexto.
+
+Como nota aparte, aunque una nota importante, observe que a causa de
+que los valores de @code{font-shape} son símbolos, deben ir precedidos
+de un apóstrofe, @code{'}. Esa es la razón por la que se necesitan
+apóstrofes antes de @code{thickness} en el ejemplo anterior y en
+@code{font-shape}. Los dos son también símbolos. Los símbolos son
+nombres especiales que son conocidos por LilyPond internamente.
+Algunos de ellos son nombres de propiedades, como @code{thickness} o
+@code{font-shape}, otros son en efecto valores especiales que se les
+puede dar a las propiedades, como @code{italic}. Observe la
+distincion entre esto y las cadenas de texto arbitrarias, que
+aparecerían entrecomilladas como @code{"a text string"}.
+
+De acuerdo, entonces la instrucción @code{\override} que necesitamos
+para imprimir la letra en cursiva sería
+
+@example
+\override LyricText #'font-shape = #'italic
+@end example
+
+@noindent
+y debe colocarse justo delante de, y cerca de, la letra a la que debe
+afectar, como esto:
+
+@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+{
+ \time 6/8
+ {
+ r4 b8 b[( g]) g |
+ g[( e]) e d[( f]) a |
+ a g
+ }
+ \addlyrics {
+ \override LyricText #'font-shape = #'italic
+ The man who feels love's sweet e -- mo -- tion
+ }
+}
+@end lilypond
+
+@noindent
+y toda la letra se imprime en cursiva.
+
+@subheading Specifying the context in lyric mode
+@cindex contexto, especificación en modo letra
+
+En el caso de la letra, si intenta especificar el contexto en el
+formato que acabamnos de dar, la instrucción no funcionará. Una
+sílaba escrita en el modo letra, «lyricmode» temina en un espacio, un
+salto de línea o un dígito. Cualquier otro carácter se incluye como
+parte de la sílaba. Por esta razón, un espacio o salto de línea debe
+aparecer antes del último símbolo @code{@}} para evitar que se incluya
+como parte de la sílaba final. De forma similar, se deben insertar
+espacios antes y después del punto, @q{.}, separando el nombre del
+contexto del nombre del objeto, pues en caso contrario los dos nombres
+se juntarán y el intérprete no podrá reconocerlos. Así pues, la
+instrucción será:
+
+@example
+\override Lyrics . LyricText #'font-shape = #'italic
+@end example
+
+@warning{Dentro de la letra, deje siempre espacios entre la sílaba
+final y la llave de cierre.}
+
+@warning{En las sobreescrituras con override dentro de la letra,
+escriba siempre espacios antes y después del punto que separa el
+nombre del contexto y el nombre del objeto.}
+
+@node Types of properties
+@subsection Types of properties
+
+@cindex propiedades, tipos de
+
+Hasta ahora hemos visto dos tipos de propiedad:: @code{número} y
+@code{símbolo}. Para que sea válido, el valor que se da a una
+propiedad debe ser del tipo correcto y obedecer las reglas de dicho
+tipo. El tipo de la propiedad se muestra siempre entre paréntesis
+después del nombre de la propiedad en el RFI. He aquí una lista de
+los tipos que podrá necesitar, junto con las reglas de dicho tipo, y
+algunos ejemplos. Debe escribir siempre un símbolo de almohadilla,
+@code{#}, por supuesto, delante de estos valores cuando se introducen
+en la instrucción @code{\override}.
+
+@multitable @columnfractions .2 .45 .35
+@headitem Tipo de propiedad
+ @tab Reglas
+ @tab Ejemplos
+@item Booleano
+ @tab Verdadero o Falso, representado por #t o #f
+ @tab @code{#t}, @code{#f}
+@item Dimensión (en espacios de pentagrama)
+ @tab Un número decimal positivo (en unidades de espacios de pentagrama)
+ @tab @code{2.5}, @code{0.34}
+@item Dirección
+ @tab Una constante válida de dirección o su equivalente numérico
+ @tab @code{#LEFT}, @code{#CENTER}, @code{#UP},
+ @code{1}, @code{-1}
+@item Entero
+ @tab Un número entero positivo
+ @tab @code{3}, @code{1}
+@item Lista
+ @tab Un conjunto de elementos entre paréntesis separados por espacios y precedido de un apóstrofe
+ @tab @code{'(left-edge staff-bar)}, @code{'(1)},
+ @code{'(1.0 0.25 0.5)}
+@item Marcado
+ @tab Cualquier elemento válido de marcado de texto
+ @tab @code{\markup @{ \italic "cresc." @}}
+@item Momento
+ @tab Una fracción de redonda construida con la función make-moment
+ @tab @code{(ly:make-moment 1 4)},
+ @code{(ly:make-moment 3 8)}
+@item Número
+ @tab Cualquier valor decimal positivo o negativo
+ @tab @code{3.5}, @code{-2.45}
+@item Pareja (de números)
+ @tab Dos números separados por un @q{espacio . espacio}, encerrado entre paréntesis y precedido de un apóstrofe
+ @tab @code{'(2 . 3.5)}, @code{'(0.1 . -3.2)}
+@item Símbolo
+ @tab Cualquiera del conjunto de símbolos premitidos para esa propiedad, precedido de un apóstrofe
+ @tab @code{'italic}, @code{'inside}
+@item Desconocido
+ @tab Un procedimiento o @code{#f} (para no producir ninguna acción)
+ @tab @code{bend::print}, @code{ly:text-interface::print},
+ @code{#f}
+@item Vector
+ @tab Una lista de tres elementos encerrados entre paréntesis y precedida de una almohadilla, @code{#}.
+ @tab @code{#(#t #t #f)}
+@end multitable
+
@node Moving objects
@section Moving objects
correspondiente de la referencia del programa.
+@menu
+* Size of objects::
+@end menu
+
@node Size of objects
@subsection Size of objects
@c -*- coding: utf-8; mode: texinfo; -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: 0204d415337bf74ae8626f396e6ea3cc5669c8f2
+ Translation of GIT committish: e1c119e97fca9bce4bb8749e56bf2952598589f6
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@menu
* Suggestions for writing LilyPond files::
-* Saving typing with variables and functions::
-* Style sheets::
-* Updating old files::
-* Troubleshooting (taking it all apart)::
-* Minimal examples::
+* When things don't work::
+* Scores and parts::
@end menu
* General suggestions::
* Typesetting existing music::
* Large projects::
+* Saving typing with variables and functions::
+* Style sheets::
@end menu
@itemize @bullet
@item @strong{Incluya los números de @code{\version} en todos los archivos}. Dese cuenta de que todas las
-plantillas contienen una cadena como @code{\version "2.11.38"}. Le recomendamos
-mucho que siempre incluya la @code{\version}, sin importar cuán
-pequeño pueda ser su archivo. Desde la experiencia personal podemos decirle que es bastante frustrante
-intentar recordar el número de versión de LilyPond que estaba usando hace unos años.
-@code{convert-ly} requiere que declare
-qué versión de LilyPond utilizó.
-
-@item @strong{Incluya comprobaciones}: @ruser{Bar check}, @ruser{Octave check} y
-@ruser{Barnumber check}. Si
-incluye comprobaciones de vez en cuando, en caso de que cometa un error podrá localizarlo mucho más rápidamente.
-¿Con qué frecuencia es @q{de vez en cuando}? Depende de la complejidad
-de la música. Para una música muy sencilla, quizá tan sólo una o dos veces. Para
-una música muy compleja, quizá a cada compás.
+plantillas contienen información sobre la @code{\version}. Le
+recomendamos mucho que siempre incluya la @code{\version}, sin
+importar cuán pequeño pueda ser su archivo. Desde la experiencia
+personal podemos decirle que es bastante frustrante intentar recordar
+el número de versión de LilyPond que estaba usando hace unos años.
+@code{convert-ly} requiere que declare qué versión de LilyPond
+utilizó.
+
+@item @strong{Incluya comprobaciones}: @ruser{Bar and barnumber checks},
+@ruser{Octave check}. Si incluye comprobaciones de vez en cuando, en
+caso de que cometa un error podrá localizarlo mucho más rápidamente.
+¿Con qué frecuencia es @q{de vez en cuando}? Depende de la
+complejidad de la música. Para una música muy sencilla, quizá tan
+sólo una o dos veces. Para una música muy compleja, quizá a cada
+compás.
@item @strong{Un compás por cada línea de texto}. Si hay algo muy complicado, ya sea
en la propia música
si reelabora la música más tarde.
@item @strong{Separe los trucos} de las definiciones musicales. Consulte
-@ruser{Saving typing with variables and functions} y
-@ruser{Style sheets}.
+@ref{Saving typing with variables and functions} y
+@ref{Style sheets}.
@end itemize
@}
@end example
-@item @strong{Separe los trucos de las definiciones musicales}. Ya se mencionó
-en @ruser{General suggestions}, pero para proyectos
-grandes es vital. Quizá tengamos que cambiar la
-definición de @code{fthenp}, pero en ese caso sólo lo tendremos que
-hacer una vez, y aún podremos evitar tocar nada
-dentro de @code{violin}.
+@item @strong{Separe los trucos de las definiciones musicales}.
+Ya se mencionó con anterioridad, pero para proyectos grandes es vital.
+Quizá tengamos que cambiar la definición de @code{fthenp}, pero en ese
+caso sólo lo tendremos que hacer una vez, y aún podremos evitar tocar
+nada dentro de @code{violin}.
@example
fthenp = _\markup@{
@node Saving typing with variables and functions
-@section Saving typing with variables and functions
+@subsection Saving typing with variables and functions
@cindex variables
@cindex identificadores
@end lilypond
La utilización de identificadores también es una buena forma de reducir el trabajo si
-la sintaxis de entrada de LilyPond cambia (ver @ruser{Updating old files}). Si
+la sintaxis de entrada de LilyPond cambia (véase @ref{Updating old files}). Si
tiene una sola definición (como p.ej. @code{\dolce}) para todos sus
-archivos (ver @ruser{Style sheets}), y después la sintaxis se modifica, sólo tendrá
+archivos (ver @ref{Style sheets}), y después la sintaxis se modifica, sólo tendrá
que actualizar su definición @code{\dolce} única,
en lugar de tener que hacer cambios en cada uno de los archivos @code{.ly}.
@node Style sheets
-@section Style sheets
+@subsection Style sheets
La salida que produce LilyPond se puede modificar profundamente; consulte
-@ruser{Tweaking output} para leer detalles sobre este asunto. Pero ¿qué ocurre si tiene muchos
+@ref{Tweaking output} para leer detalles sobre este asunto. Pero ¿qué ocurre si tiene muchos
archivos a los que les quiere aplicar sus propios trucos? O ¿qué ocurre si, sencillamente,
quiere separar los trucos de la propia música? Todo esto
es bastante fácil de conseguir.
Veamos un ejemplo. No se preocupe si no entiende
las partes que tienen todos los @code{#()}. Esto se explicará en
-@ruser{Advanced tweaks with Scheme}.
+@ref{Advanced tweaks with Scheme}.
@lilypond[quote,verbatim,ragged-right]
mpdolce = #(make-dynamic-script (markup #:hspace 1 #:translate (cons 5 0)
@end lilypond
Existen varios problemas con la salida que se superpone; los arreglaremos utilizando
-las técnicas descritas en @ruser{Moving objects}. Pero también haremos algo respecto a
+las técnicas descritas en @ref{Moving objects}. Pero también haremos algo respecto a
las definiciones @code{mpdolce} y @code{tempoMark}. Éstas producen la salida que
deseamos, pero quizá las querríamos utilizar en otra pieza.
Podríamos simplemente copiarlas y pegarlas al principio de cada archivo,
\include "../iniciar/iniciar-papel.ly"
@end example
+@node When things don't work
+@section When things don't work
+
+@menu
+* Updating old files::
+* Troubleshooting (taking it all apart)::
+* Minimal examples::
+@end menu
@node Updating old files
-@section Updating old files
+@subsection Updating old files
La sintaxis de la entrada de LilyPond cambia de manera ocasional. A medida que el propio
LilyPond mejora, la sintaxis (el lenguaje de la entrada) se modifica en consonancia. A
Por ejemplo, en la versión 2.4 y anteriores de LilyPond,
los acentos y las letras no inglesas se introducían utilizando
-LaTeX: por ejemplo, @samp{No\"el} (que significa @q{Navidad} en francés).
-En LilyPond 2.6 y siguientes, el carácter especial @samp{ë}
+LaTeX: por ejemplo, @code{No\"el} (que significa @q{Navidad} en francés).
+En LilyPond 2.6 y siguientes, el carácter especial @code{ë}
debe introducirse directamente en el archivo de LilyPond como un carácter UTF-8.
@code{convert-ly} no puede cambiar todos los caracteres especiales
de LaTeX a caracteres de UTF-8; tendrá que actualizar manualmente
@node Troubleshooting (taking it all apart)
-@section Troubleshooting (taking it all apart)
+@subsection Troubleshooting (taking it all apart)
Antes o después escribirá un archivo que LilyPond no podrá compilar.
Los mensajes que LilyPond proporciona pueden ayudarle a encontrar el
parte del @code{bajo} hasta que encuentre la línea del problema.
Otra técnica de depuración muy útil es la construcción de
-@ruser{Minimal examples}.
+@ref{Minimal examples}.
@node Minimal examples
-@section Minimal examples
+@subsection Minimal examples
Un ejemplo mínimo es un ejemplo tan pequeño como sea posible. Estos
ejemplos son mucho más fáciles de comprender que los ejemplos largos. Los ejemplos
@end itemize
+@node Scores and parts
+@section Scores and parts
+
+En música orquestal, todas las notas se imprimen dos veces. Una vez
+en las particellas para los músicos, y otra para la partitura del director.
+Los identificadores se pueden usar para evitar la duplicación del trabajo.
+La música se escribe una vez y se almacena en una variable.
+El contenido de dicha variable se usa después para generar tanto la particella como la partitura del director.
+
+Es muy conveniente definir las notas en un archivo especial. Por
+ejemplo, supongamos que el archivo @file{trompa.ly} contiene la
+siguiente parte de un dúo para trompa y fagot:
+
+@example
+notasTrompa = \relative c @{
+ \time 2/4
+ r4 f8 a cis4 f e d
+@}
+@end example
+
+@noindent
+Luego se hace una particella escribiendo en un archivo lo siguiente
+
+@example
+\include "trompa.ly"
+\header @{
+ instrument = "Trompa en Fa"
+@}
+
+@{
+ \transpose f c' \notasTrompa
+@}
+@end example
+
+La línea
+
+@example
+\include "trompa.ly"
+@end example
+
+@noindent
+sustituye el contenido de @file{trompa.ly} en esta posición dentro del
+archivo, así que @code{notasTrompa} se define con posterioridad. El comando
+@code{\transpose f@tie{}c'} indica que el argumento constituido por
+@code{\notasTrompa} se debe transponer una quinta hacia arriba. Lo que suena como
+@code{f} se escribe como @code{c'}, lo que corresponde con el tono de afinación de
+una trompa normal en@tie{}Fa. La transposición se puede ver en la
+siguiente salida
+
+@lilypond[quote,ragged-right]
+\transpose f c' \relative c {
+ \time 2/4
+ r4 f8 a cis4 f e d
+}
+@end lilypond
+
+En piezas para conjunto, con frecuencia una de las voces no suena durante muchos compases.
+Esto queda denotado por un silencio especial, el silencio multicompás.
+Se introduce con una @code{R} mayúscula seguida de una duración
+(@code{1}@tie{}en el caso de la redonda, @code{2}@tie{}en el caso de una blanca,
+etc.). Multiplicando la duración se pueden construir
+silencios más largos. Por ejemplo, este silencio ocupa
+3@tie{}compases de 2/4
+
+@example
+R2*3
+@end example
+
+Cuando se imprime la particella tienen que comprimirse los silencios
+multicompás. Esto se hace estableciendo una variable en tiempo de ejecución
+
+@example
+\set Score.skipBars = ##t
+@end example
+
+@noindent
+Este comando establece el valor de la propiedad @code{skipBars} en el
+contexto de @code{Score} a verdadero (@code{##t}). Anteponiendo el silencio y
+esta opción a la música anterior, llegamos al siguiente resultado
+
+@lilypond[quote,ragged-right]
+\transpose f c' \relative c {
+ \time 2/4
+ \set Score.skipBars = ##t
+ R2*3
+ r4 f8 a cis4 f e d
+}
+@end lilypond
+
+
+Esta partitura se hace combinando toda la música junta. Suponiendo
+que la otra voz se encuentra dentro de @code{notasFagot} en el archivo
+@file{fagot.ly}, la partitura se hace con
+
+@example
+\include "fagot.ly"
+\include "trompa.ly"
+
+<<
+ \new Staff \notasTrompa
+ \new Staff \notasFagot
+>>
+@end example
+
+@noindent
+lo que nos lleva a
+
+@lilypond[quote,ragged-right]
+\relative c <<
+ \new Staff {
+ \time 2/4 R2*3
+ r4 f8 a cis4 f e d
+ }
+ \new Staff {
+ \clef bass
+ r4 d,8 f | gis4 c | b bes |
+ a8 e f4 | g d | gis f
+ }
+>>
+@end lilypond
# translation of LilyPond documentation
# Copyright (C) 2006 Han-Wen Nienhuys, Jan Nieuwenhuizen
# This file is distributed under the same license as the lilypond package.
-# Till Rettig <till.rettig@gmx.de>, 2007.
+# Till Rettig <till.rettig@gmx.de>, 2007,2008
#
#
msgid ""
"Project-Id-Version: de\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-03-23 16:29+0100\n"
-"PO-Revision-Date: 2007-12-07 18:06+0200\n"
+"PO-Revision-Date: 2008-03-24 15:06+0200\n"
"Last-Translator: Till Rettig <till.rettig@gmx.de>\n"
"Language-Team: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
+"Content-Transfer-Encoding: 8bit"
#: add_html_footer.py:44
#, python-format
#. @subsubheading in ../../../Documentation/fr/user/macros.itexi
#. @subsubheading in ../../../Documentation/de/user/macros.itexi
msgid "Selected Snippets"
-msgstr ""
+msgstr "Ausgewählte Schnipsel"
#. @subsubheading in ../../../Documentation/user/macros.itexi
#. @subsubheading in ../../../Documentation/fr/user/macros.itexi
msgstr "Phrasierungsbögen"
#. @rglos in ../../../Documentation/user/tutorial.itely
-#, fuzzy
msgid "slurs"
-msgstr "Legatobogen"
+msgstr "Legatobögen"
#. @rglos in ../../../Documentation/user/tutorial.itely
#. @rglos in ../../../Documentation/de/user/tutorial.itely
#. @rglos in ../../../Documentation/user/tutorial.itely
#. @rglos in ../../../Documentation/user/rhythms.itely
-#, fuzzy
msgid "acciaccatura"
msgstr "Vorschlag"
#. @node in ../../../Documentation/de/user/tutorial.itely
#. @subsection in ../../../Documentation/de/user/tutorial.itely
msgid "Staff groups"
-msgstr ""
+msgstr "Notensysteme gruppieren"
#. @rglos in ../../../Documentation/user/tutorial.itely
#. @rglos in ../../../Documentation/user/staff.itely
#. @subsection in ../../../Documentation/es/user/fundamental.itely
#. @node in ../../../Documentation/de/user/fundamental.itely
#. @subsection in ../../../Documentation/de/user/fundamental.itely
-#, fuzzy
msgid "Nesting music expressions"
-msgstr "Musikalische Ausdrücke verschachteln"
+msgstr "Musikalische Ausdrücke ineinander verschachteln"
#. @rglos in ../../../Documentation/user/fundamental.itely
#. @rglos in ../../../Documentation/user/tweaks.itely
#. @subsubheading in ../../../Documentation/user/fundamental.itely
#. @subsubheading in ../../../Documentation/es/user/fundamental.itely
#. @subsubsection in ../../../Documentation/de/user/fundamental.itely
-#, fuzzy
msgid "Changing a single context"
-msgstr "Neue Umgebungen definieren"
+msgstr "Einen einzelnen Kontext verändern"
#. @rglos in ../../../Documentation/user/fundamental.itely
#. @rglos in ../../../Documentation/user/pitches.itely
#. @subsubheading in ../../../Documentation/user/fundamental.itely
#. @subsubheading in ../../../Documentation/es/user/fundamental.itely
#. @subsubsection in ../../../Documentation/de/user/fundamental.itely
-#, fuzzy
msgid "Changing all contexts of the same type"
-msgstr "Umgebungseigenschaften lokal ändern"
+msgstr "Alle Kontexte des gleichen Typs verändern"
#. @node in ../../../Documentation/user/fundamental.itely
#. @section in ../../../Documentation/user/fundamental.itely
#. @node in ../../../Documentation/user/tweaks.itely
#. @section in ../../../Documentation/user/tweaks.itely
-#, fuzzy
msgid "Tweaking basics"
-msgstr "Die Ausgabe verändern"
+msgstr "Grundlagen für die Optimierung"
#. @node in ../../../Documentation/user/tweaks.itely
#. @subsection in ../../../Documentation/user/tweaks.itely
-#, fuzzy
msgid "Introduction to tweaks"
-msgstr "Eine Korrektur konstruieren"
+msgstr "Grundlagen zur Optimierung"
#. @node in ../../../Documentation/user/tweaks.itely
#. @subsection in ../../../Documentation/user/tweaks.itely
-#, fuzzy
msgid "Objects and interfaces"
-msgstr "Layout-Schnittstellen"
+msgstr "Objekte und Schnittstellen"
#. @node in ../../../Documentation/user/tweaks.itely
#. @subsection in ../../../Documentation/user/tweaks.itely
msgid "Naming conventions of objects and properties"
-msgstr ""
+msgstr "Regeln zur Benennung von Objekten und Eigenschaften"
#. @node in ../../../Documentation/user/tweaks.itely
#. @subsection in ../../../Documentation/user/tweaks.itely
-#, fuzzy
msgid "Tweaking methods"
-msgstr "Die Ausgabe verändern"
+msgstr "Optimierungsmethoden"
#. @node in ../../../Documentation/user/tweaks.itely
#. @section in ../../../Documentation/user/tweaks.itely
msgid "The Internals Reference manual"
-msgstr ""
+msgstr "Die Referenz der Programminterna"
#. @node in ../../../Documentation/user/tweaks.itely
#. @subsection in ../../../Documentation/user/tweaks.itely
msgid "Properties of layout objects"
-msgstr ""
+msgstr "Eigenschaften von Layoutobjekten"
#. @subheading in ../../../Documentation/user/tweaks.itely
-#, fuzzy
msgid "Finding the context"
-msgstr "Neue Umgebungen definieren"
+msgstr "Den Kontext finden"
#. @subheading in ../../../Documentation/user/tweaks.itely
msgid "Overriding once only"
-msgstr ""
+msgstr "Nur einmal mit \\override verändern"
#. @subheading in ../../../Documentation/user/tweaks.itely
-#, fuzzy
msgid "Reverting"
-msgstr "Fehler melden"
+msgstr "Rückgängig machen"
#. @node in ../../../Documentation/user/tweaks.itely
#. @subsection in ../../../Documentation/user/tweaks.itely
-#, fuzzy
msgid "Properties found in interfaces"
-msgstr "Schnittstelle für Programmierer"
+msgstr "Eigenschaften, die Schnittstellen besitzen können"
#. @subheading in ../../../Documentation/user/tweaks.itely
-#, fuzzy
msgid "Specifying the context in lyric mode"
-msgstr "Melismen innerhalb des Textes bestimmen"
+msgstr "Den Kontext im Liedtextmodus bestimmen"
#. @node in ../../../Documentation/user/tweaks.itely
#. @subsection in ../../../Documentation/user/tweaks.itely
-#, fuzzy
msgid "Types of properties"
-msgstr "Eigenschaften von Musikobjekten"
+msgstr "Typen von Eigenschaften"
#. @node in ../../../Documentation/user/tweaks.itely
#. @section in ../../../Documentation/user/tweaks.itely
msgid "Appearance of objects"
-msgstr ""
+msgstr "Erscheinung von Objekten"
#. @node in ../../../Documentation/user/tweaks.itely
#. @subsection in ../../../Documentation/user/tweaks.itely
msgid "Visibility and color of objects"
-msgstr ""
+msgstr "Sichtbarkeit und Farbe von Objekten"
#. @subheading in ../../../Documentation/user/tweaks.itely
msgid "stencil"
-msgstr ""
+msgstr "stencil (Matrize)"
#. @subheading in ../../../Documentation/user/tweaks.itely
msgid "break-visibility"
-msgstr ""
+msgstr "break-visibility (unsichtbar machen)"
#. @subheading in ../../../Documentation/user/tweaks.itely
-#, fuzzy
msgid "transparent"
-msgstr "Transposition"
+msgstr "transparent (durchsichtig)"
#. @subheading in ../../../Documentation/user/tweaks.itely
-#, fuzzy
msgid "color"
-msgstr "Akkord"
+msgstr "color (Farbe)"
#. @node in ../../../Documentation/user/tweaks.itely
#. @subsection in ../../../Documentation/user/tweaks.itely
#. @node in ../../../Documentation/es/user/tweaks.itely
#. @subsection in ../../../Documentation/es/user/tweaks.itely
-#, fuzzy
msgid "Size of objects"
-msgstr "Verschieben von Objekten"
+msgstr "Größe von Objekten"
#. @node in ../../../Documentation/user/tweaks.itely
#. @subsection in ../../../Documentation/user/tweaks.itely
msgid "Length and thickness of objects"
-msgstr ""
+msgstr "Länge und Dicke von Objekten"
#. @node in ../../../Documentation/user/tweaks.itely
#. @section in ../../../Documentation/user/tweaks.itely
-#, fuzzy
msgid "Placement of objects"
-msgstr "Verschieben von Objekten"
+msgstr "Positionierung von Objekten"
#. @node in ../../../Documentation/user/tweaks.itely
#. @subsection in ../../../Documentation/user/tweaks.itely
-#, fuzzy
msgid "Automatic behaviour"
-msgstr "Automatische Balken"
+msgstr "Automatisches Verhalten"
#. @node in ../../../Documentation/user/tweaks.itely
#. @subsection in ../../../Documentation/user/tweaks.itely
msgid "Within-staff objects"
-msgstr ""
+msgstr "withing-staff (Objekte innerhalb des Notensystems)"
#. @subheading in ../../../Documentation/user/tweaks.itely
-#, fuzzy
msgid "Fingering"
msgstr "Fingersatz"
#. @node in ../../../Documentation/user/tweaks.itely
#. @subsection in ../../../Documentation/user/tweaks.itely
-#, fuzzy
msgid "Outside staff objects"
-msgstr "Außerhalb des Notensystems"
+msgstr "Objekte außerhalb des Notensystems"
#. @subheading in ../../../Documentation/user/tweaks.itely
msgid "\\textLengthOn"
-msgstr ""
+msgstr "\\textLengthOn (Textlänge berücksichtigen)"
#. @subheading in ../../../Documentation/user/tweaks.itely
msgid "Grob sizing"
-msgstr ""
+msgstr "Verändern der Größe von grobs"
#. @node in ../../../Documentation/user/tweaks.itely
#. @section in ../../../Documentation/user/tweaks.itely
-#, fuzzy
msgid "Collisions of objects"
-msgstr "Farbige Objekte"
+msgstr "Kollision von Objekten"
#. @node in ../../../Documentation/user/tweaks.itely
#. @subsection in ../../../Documentation/user/tweaks.itely
#. @subheading in ../../../Documentation/user/tweaks.itely
msgid "padding property"
-msgstr ""
+msgstr "padding (Fülleigenschafte)"
#. @subheading in ../../../Documentation/user/tweaks.itely
msgid "left-padding and right-padding"
-msgstr ""
+msgstr "left-padding (Verschieben nach rechts) und right-padding (Verschieben nach links)"
#. @subheading in ../../../Documentation/user/tweaks.itely
msgid "staff-padding property"
-msgstr ""
+msgstr "staff-padding (Systemfüllungseigenschaft)"
#. @subheading in ../../../Documentation/user/tweaks.itely
msgid "self-alignment-X property"
-msgstr ""
+msgstr "self-alignment-X (Selbstausrichtung-X-Eigenschaft)"
#. @subheading in ../../../Documentation/user/tweaks.itely
msgid "staff-position property"
-msgstr ""
+msgstr "staff-position (Position innerhalb des Systems)"
#. @subheading in ../../../Documentation/user/tweaks.itely
msgid "extra-offset property"
-msgstr ""
+msgstr "extra-offset (Genaues Positionieren)"
#. @subheading in ../../../Documentation/user/tweaks.itely
msgid "positions property"
-msgstr ""
+msgstr "Ausrichtungseigenschaft"
#. @subheading in ../../../Documentation/user/tweaks.itely
msgid "force-hshift property"
-msgstr ""
+msgstr "force-hshift (vertikale Verschiebunseigenschaft)"
#. @node in ../../../Documentation/user/tweaks.itely
#. @subsection in ../../../Documentation/user/tweaks.itely
-#, fuzzy
msgid "Real music example"
-msgstr "Anklickbare Beispiele"
+msgstr "Beispiele aus dem Leben"
#. @node in ../../../Documentation/user/tweaks.itely
#. @section in ../../../Documentation/user/tweaks.itely
msgid "Further tweaking"
-msgstr ""
+msgstr "Weitere Optimierungen"
#. @node in ../../../Documentation/user/tweaks.itely
#. @subsection in ../../../Documentation/user/tweaks.itely
-#, fuzzy
msgid "Other uses for tweaks"
-msgstr "Andere übliche Optimierungen"
+msgstr "Andere Benutzung von Optimierungen"
#. @subheading in ../../../Documentation/user/tweaks.itely
-#, fuzzy
msgid "Tying notes across voices"
-msgstr "Stichnoten"
+msgstr "Noten zwischen unterschiedlichen Stimmen überbinden"
#. @subheading in ../../../Documentation/user/tweaks.itely
msgid "Simulating a fermata"
-msgstr ""
+msgstr "Eine Fermate simulieren"
#. @node in ../../../Documentation/user/tweaks.itely
#. @subsection in ../../../Documentation/user/tweaks.itely
-#, fuzzy
msgid "Using variables for tweaks"
-msgstr "Eine zusätzliche Stimme für Umbrüche benutzen"
+msgstr "Variablen für Optimierungen einsetzen"
#. @node in ../../../Documentation/user/tweaks.itely
#. @subsection in ../../../Documentation/user/tweaks.itely
-#, fuzzy
msgid "Other sources of information"
msgstr "Mehr Information"
msgstr "Texinfo"
#. @appendixsubsec in ../../../Documentation/user/templates.itely
-#, fuzzy
msgid "xelatex"
-msgstr "Vorlagen"
+msgstr "xelatex"
#. @node in ../../../Documentation/user/scheme-tutorial.itely
#. @appendix in ../../../Documentation/user/scheme-tutorial.itely
#. @node in ../../../Documentation/user/scheme-tutorial.itely
#. @appendixsec in ../../../Documentation/user/scheme-tutorial.itely
-#, fuzzy
msgid "Tweaking with Scheme"
-msgstr "Fortgeschrittene Optimierungen mit Scheme"
+msgstr "Optimierungen mit Scheme"
#. @node in ../../../Documentation/user/fdl.itexi
#. @appendix in ../../../Documentation/user/fdl.itexi
#. @subheading in ../../../Documentation/fr/user/lilypond-book.itely
#. @subheading in ../../../Documentation/es/user/lilypond-book.itely
#. @subheading in ../../../Documentation/de/user/lilypond-book.itely
-#, fuzzy
msgid "Format-specific instructions"
-msgstr "Instrumentenspezifische Notation"
+msgstr "Formatabhängige Anweisungen"
#. @node in ../../../Documentation/user/lilypond-book.itely
#. @section in ../../../Documentation/user/lilypond-book.itely
msgstr "Relative Oktavenbezeichnung"
#. @rglos in ../../../Documentation/user/pitches.itely
-#, fuzzy
msgid "fifth"
-msgstr "Tonhöhe"
+msgstr "Quinte"
#. @rglos in ../../../Documentation/user/pitches.itely
-#, fuzzy
msgid "quarter-tone"
-msgstr "Viertelnote"
+msgstr "Viertelton"
#. @node in ../../../Documentation/user/pitches.itely
#. @unnumberedsubsubsec in ../../../Documentation/user/pitches.itely
#. @unnumberedsubsubsec in ../../../Documentation/user/pitches.itely
#. @node in ../../../Documentation/es/user/pitches.itely
#. @subsubsection in ../../../Documentation/es/user/pitches.itely
-#, fuzzy
msgid "Octave checks"
msgstr "Oktavenüberprüfung"
msgstr "Tonartbezeichnung"
#. @rglos in ../../../Documentation/user/pitches.itely
-#, fuzzy
msgid "church mode"
-msgstr "Akkord-Modus"
+msgstr "Kirchentonart"
#. @rglos in ../../../Documentation/user/pitches.itely
msgid "scordatura"
msgstr "Oktavierungsklammern"
#. @rglos in ../../../Documentation/user/pitches.itely
-#, fuzzy
msgid "octavation"
-msgstr "Oktave"
+msgstr "Oktavierung"
#. @node in ../../../Documentation/user/pitches.itely
#. @unnumberedsubsubsec in ../../../Documentation/user/pitches.itely
#. @rglos in ../../../Documentation/user/pitches.itely
msgid "concert pitch"
-msgstr ""
+msgstr "Kammerton"
#. @rglos in ../../../Documentation/user/pitches.itely
-#, fuzzy
msgid "transposing instrument"
-msgstr "Transposition"
+msgstr "Transponierende Instrumente"
#. @node in ../../../Documentation/user/pitches.itely
#. @unnumberedsubsubsec in ../../../Documentation/user/pitches.itely
#. @unnumberedsubsubsec in ../../../Documentation/fr/user/pitches.itely
#. @node in ../../../Documentation/es/user/pitches.itely
#. @subsubsection in ../../../Documentation/es/user/pitches.itely
-#, fuzzy
msgid "Special note heads"
msgstr "Besondere Notenköpfe"
#. @rglos in ../../../Documentation/user/rhythms.itely
#. @rglos in ../../../Documentation/es/user/rhythms.itely
-#, fuzzy
msgid "breve"
-msgstr "Klammer"
+msgstr "Brevis"
#. @rglos in ../../../Documentation/user/rhythms.itely
#. @rglos in ../../../Documentation/es/user/rhythms.itely
-#, fuzzy
msgid "longa"
-msgstr "Lieder"
+msgstr "Longa"
#. @rglos in ../../../Documentation/user/rhythms.itely
#. @rglos in ../../../Documentation/es/user/rhythms.itely
msgid "Duration names notes and rests"
-msgstr ""
+msgstr "Dauerbezeichnungen für Noten und Pausen"
#. @rglos in ../../../Documentation/user/rhythms.itely
#. @rglos in ../../../Documentation/es/user/rhythms.itely
-#, fuzzy
msgid "tuplet"
-msgstr "Andere rhythmische Aufteilungen"
+msgstr "N-tole"
#. @rglos in ../../../Documentation/user/rhythms.itely
#. @rglos in ../../../Documentation/es/user/rhythms.itely
-#, fuzzy
msgid "polymetric"
-msgstr "Gesangtext"
+msgstr "Polymetrie"
#. @node in ../../../Documentation/user/rhythms.itely
#. @subsubsection in ../../../Documentation/user/rhythms.itely
#. @rglos in ../../../Documentation/user/rhythms.itely
#. @rglos in ../../../Documentation/es/user/rhythms.itely
-#, fuzzy
msgid "laissez vibrer"
msgstr "Laissez-vibrer-Bögen"
#. @subsubsection in ../../../Documentation/user/rhythms.itely
#. @node in ../../../Documentation/es/user/rhythms.itely
#. @subsubsection in ../../../Documentation/es/user/rhythms.itely
-#, fuzzy
msgid "Full measure rests"
-msgstr "Mehrtaktige Pausen"
+msgstr "Ganztaktige Pausen"
#. @rglos in ../../../Documentation/user/rhythms.itely
-#, fuzzy
msgid "multi-measure rest"
-msgstr "Mehrtaktige Pausen"
+msgstr "Pausen über mehrere Takte"
#. @rglos in ../../../Documentation/user/rhythms.itely
-#, fuzzy
msgid "church rests"
-msgstr "Akkord-Modus"
+msgstr "Kirchenpausen"
#. @node in ../../../Documentation/user/rhythms.itely
#. @subsection in ../../../Documentation/user/rhythms.itely
msgstr "Polymetrische Notation"
#. @rglos in ../../../Documentation/user/rhythms.itely
-#, fuzzy
msgid "polymetric time signature"
-msgstr "Taktangabe"
+msgstr "Polymetrische Taktangabe"
#. @rglos in ../../../Documentation/user/rhythms.itely
msgid "meter"
-msgstr ""
+msgstr "Metrum"
#. @node in ../../../Documentation/user/rhythms.itely
#. @subsubsection in ../../../Documentation/user/rhythms.itely
#. @rglos in ../../../Documentation/user/expressive.itely
#. @rglos in ../../../Documentation/es/user/expressive.itely
msgid "tenuto"
-msgstr ""
+msgstr "Tenuto"
#. @rglos in ../../../Documentation/user/expressive.itely
#. @rglos in ../../../Documentation/es/user/expressive.itely
-#, fuzzy
msgid "accent"
-msgstr "Versetzungszeichen"
+msgstr "Akzent"
#. @rglos in ../../../Documentation/user/expressive.itely
#. @rglos in ../../../Documentation/es/user/expressive.itely
msgid "staccato"
-msgstr ""
+msgstr "Staccato"
#. @rglos in ../../../Documentation/user/expressive.itely
#. @rglos in ../../../Documentation/es/user/expressive.itely
msgid "portato"
-msgstr ""
+msgstr "Portato"
#. @node in ../../../Documentation/user/expressive.itely
#. @subsection in ../../../Documentation/user/expressive.itely
msgstr ""
#. @rglos in ../../../Documentation/user/expressive.itely
-#, fuzzy
msgid "doits"
-msgstr "jEdit"
+msgstr "doits"
#. @node in ../../../Documentation/user/expressive.itely
#. @subsection in ../../../Documentation/user/expressive.itely
msgstr "Glissando"
#. @rglos in ../../../Documentation/user/expressive.itely
-#, fuzzy
msgid "glissando"
msgstr "Glissando"
#. @rglos in ../../../Documentation/user/expressive.itely
#. @rglos in ../../../Documentation/es/user/expressive.itely
-#, fuzzy
msgid "arpeggio"
msgstr "Arpeggio"
#. @rglos in ../../../Documentation/user/expressive.itely
#. @rglos in ../../../Documentation/es/user/expressive.itely
-#, fuzzy
msgid "trill"
msgstr "Triller"
#. @subsection in ../../../Documentation/user/repeats.itely
#. @node in ../../../Documentation/es/user/repeats.itely
#. @subsection in ../../../Documentation/es/user/repeats.itely
-#, fuzzy
msgid "Writing long repeats"
-msgstr "Wiederholungen eingeben"
+msgstr "Lange Wiederholungen eingeben"
#. @node in ../../../Documentation/user/repeats.itely
#. @subsubsection in ../../../Documentation/user/repeats.itely
#. @rglos in ../../../Documentation/user/repeats.itely
#. @rglos in ../../../Documentation/es/user/repeats.itely
-#, fuzzy
msgid "repeat"
-msgstr "Wiederholungszeichen"
+msgstr "Wiederholungen"
#. @rglos in ../../../Documentation/user/repeats.itely
#. @rglos in ../../../Documentation/es/user/repeats.itely
#. @subsubsection in ../../../Documentation/user/repeats.itely
#. @node in ../../../Documentation/es/user/repeats.itely
#. @subsubsection in ../../../Documentation/es/user/repeats.itely
-#, fuzzy
msgid "Manual repeat marks"
-msgstr "Manuelle Wiederholungsbefehle"
+msgstr "Manuelle Wiederholungszeichen"
#. @node in ../../../Documentation/user/repeats.itely
#. @subsubsection in ../../../Documentation/user/repeats.itely
#. @node in ../../../Documentation/es/user/repeats.itely
#. @subsubsection in ../../../Documentation/es/user/repeats.itely
-#, fuzzy
msgid "Written-out repeats"
-msgstr "Wiederholungen eingeben"
+msgstr "Ausgeschriebene Wiederholungen"
#. @node in ../../../Documentation/user/repeats.itely
#. @subsection in ../../../Documentation/user/repeats.itely
#. @node in ../../../Documentation/es/user/repeats.itely
#. @subsection in ../../../Documentation/es/user/repeats.itely
-#, fuzzy
msgid "Short repeats"
-msgstr "Andere Wiederholungen"
+msgstr "Kurze Wiederholungen"
#. @node in ../../../Documentation/user/repeats.itely
#. @subsubsection in ../../../Documentation/user/repeats.itely
#. @node in ../../../Documentation/es/user/repeats.itely
#. @subsubsection in ../../../Documentation/es/user/repeats.itely
-#, fuzzy
msgid "Percent repeats"
-msgstr "Taktwiederholungen"
+msgstr "Prozent-Wiederholungen"
#. @node in ../../../Documentation/user/repeats.itely
#. @subsubsection in ../../../Documentation/user/repeats.itely
#. @node in ../../../Documentation/user/staff.itely
#. @subsubsection in ../../../Documentation/user/staff.itely
-#, fuzzy
msgid "Initiating new staves"
-msgstr "Systeme verstecken"
+msgstr "Neue Notensysteme beginnen"
#. @rglos in ../../../Documentation/user/staff.itely
msgid "staff"
msgstr ""
#. @rglos in ../../../Documentation/user/staff.itely
-#, fuzzy
msgid "staves"
-msgstr "Oktave"
+msgstr "Systeme"
#. @node in ../../../Documentation/user/staff.itely
#. @subsubsection in ../../../Documentation/user/staff.itely
-#, fuzzy
msgid "Grouping staves"
-msgstr "Systeme verstecken"
+msgstr "Systeme gruppieren"
#. @rglos in ../../../Documentation/user/staff.itely
-#, fuzzy
msgid "bracket"
msgstr "Klammer"
#. @node in ../../../Documentation/user/staff.itely
#. @subsection in ../../../Documentation/user/staff.itely
-#, fuzzy
msgid "Modifying single staves"
-msgstr "Umgebungs-Eignschaften verändern"
+msgstr "Einzelne Systeme verändern"
#. @node in ../../../Documentation/user/staff.itely
#. @subsubsection in ../../../Documentation/user/staff.itely
#. @node in ../../../Documentation/user/staff.itely
#. @subsubsection in ../../../Documentation/user/staff.itely
-#, fuzzy
msgid "Ossia staves"
-msgstr "Klaviersysteme"
+msgstr "Ossia-Systeme"
#. @rglos in ../../../Documentation/user/staff.itely
-#, fuzzy
msgid "Frenched staff"
-msgstr "Ein einzelnes System"
+msgstr "Verkleinerte Systeme"
#. @node in ../../../Documentation/user/staff.itely
#. @subsubsection in ../../../Documentation/user/staff.itely
msgstr "Metronomangabe"
#. @rglos in ../../../Documentation/user/staff.itely
-#, fuzzy
msgid "metronome"
msgstr "Metronomangabe"
#. @rglos in ../../../Documentation/user/staff.itely
-#, fuzzy
msgid "metronomic indication"
-msgstr "Seitennummerbezeichnung"
+msgstr "Metronombezeichnung"
#. @rglos in ../../../Documentation/user/staff.itely
-#, fuzzy
msgid "tempo indication"
-msgstr "Moderne Notation"
+msgstr "Tempobezeichnung"
#. @rglos in ../../../Documentation/user/staff.itely
-#, fuzzy
msgid "metronome mark"
-msgstr "Metronomangabe"
+msgstr "Metronombezeichnung"
#. @node in ../../../Documentation/user/staff.itely
#. @subsubsection in ../../../Documentation/user/staff.itely
#. @node in ../../../Documentation/de/user/input.itely
#. @section in ../../../Documentation/de/user/input.itely
msgid "Common syntax issues TODO name?"
-msgstr ""
+msgstr "Übliche Syntax-Probleme"
#. @node in ../../../Documentation/user/input.itely
#. @subsection in ../../../Documentation/user/input.itely
#. @node in ../../../Documentation/es/user/input.itely
#. @subsection in ../../../Documentation/es/user/input.itely
-#, fuzzy
msgid "Controlling direction and placement"
-msgstr "Auflösung von Zusammenstößen"
+msgstr "Richtung und Platzierung kontrollieren"
#. @node in ../../../Documentation/user/input.itely
#. @subsection in ../../../Documentation/user/input.itely
#. @node in ../../../Documentation/de/user/input.itely
#. @subsection in ../../../Documentation/de/user/input.itely
msgid "Distances and measurements MAYBE MOVE"
-msgstr ""
+msgstr "Abstände und Maßeinheiten"
#. @node in ../../../Documentation/user/input.itely
#. @subsection in ../../../Documentation/user/input.itely
#. @node in ../../../Documentation/es/user/input.itely
#. @subsection in ../../../Documentation/es/user/input.itely
msgid "When to add a -"
-msgstr ""
+msgstr "Wann ein - hinzugefügt wird"
#. @node in ../../../Documentation/user/input.itely
#. @section in ../../../Documentation/user/input.itely
#. @node in ../../../Documentation/de/user/non-music.itely
#. @section in ../../../Documentation/de/user/non-music.itely
msgid "other midi"
-msgstr ""
+msgstr "Weiter Midi-Probleme"
#. @node in ../../../Documentation/user/spacing.itely
#. @chapter in ../../../Documentation/user/spacing.itely
#. @node in ../../../Documentation/de/user/spacing.itely
#. @section in ../../../Documentation/de/user/spacing.itely
msgid "Page layout MOVED FROM LM"
-msgstr ""
+msgstr "Seitenlayout"
#. @node in ../../../Documentation/user/spacing.itely
#. @subsection in ../../../Documentation/user/spacing.itely
#. @subsection in ../../../Documentation/es/user/spacing.itely
#. @node in ../../../Documentation/de/user/spacing.itely
#. @subsection in ../../../Documentation/de/user/spacing.itely
-#, fuzzy
msgid "Introduction to layout"
-msgstr "Eine Korrektur konstruieren"
+msgstr "Einfürung in das Layout"
#. @node in ../../../Documentation/user/spacing.itely
#. @subsection in ../../../Documentation/user/spacing.itely
#. @node in ../../../Documentation/de/user/spacing.itely
#. @subsection in ../../../Documentation/de/user/spacing.itely
msgid "Global sizes"
-msgstr ""
+msgstr "Globale Größenangabe"
#. @node in ../../../Documentation/user/spacing.itely
#. @subsection in ../../../Documentation/user/spacing.itely
#. @subsection in ../../../Documentation/es/user/spacing.itely
#. @node in ../../../Documentation/de/user/spacing.itely
#. @subsection in ../../../Documentation/de/user/spacing.itely
-#, fuzzy
msgid "Line breaks"
msgstr "Zeilenumbrüche"
#. @subsection in ../../../Documentation/es/user/spacing.itely
#. @node in ../../../Documentation/de/user/spacing.itely
#. @subsection in ../../../Documentation/de/user/spacing.itely
-#, fuzzy
msgid "Page breaks"
msgstr "Seitenumbrüche"
#. @node in ../../../Documentation/user/changing-defaults.itely
#. @section in ../../../Documentation/user/changing-defaults.itely
msgid "Discussion of specific tweaks"
-msgstr ""
+msgstr "Erklärung von speziellen Optimierungen"
#. @node in ../../../Documentation/user/changing-defaults.itely
#. @subsection in ../../../Documentation/user/changing-defaults.itely
-#, fuzzy
msgid "Line styles"
-msgstr "Zeilenlänge"
+msgstr "Zeilenstile"
#. @node in ../../../Documentation/user/changing-defaults.itely
#. @subsection in ../../../Documentation/user/changing-defaults.itely
-#, fuzzy
msgid "Controlling visibility of objects"
-msgstr "Farbige Objekte"
+msgstr "Die Sichtbarkeit von Objekten kontrollieren"
#. @node in ../../../Documentation/user/programming-interface.itely
#. @chapter in ../../../Documentation/user/programming-interface.itely
#. @appendixsec in ../../../Documentation/user/notation-appendices.itely
#. @node in ../../../Documentation/fr/user/notation-appendices.itely
#. @appendixsec in ../../../Documentation/fr/user/notation-appendices.itely
-#, fuzzy
msgid "All context properties"
-msgstr "Umgebungs-Eignschaften verändern"
+msgstr "Alle Kontexteigenschaften"
#. @node in ../../../Documentation/user/notation-appendices.itely
#. @appendixsec in ../../../Documentation/user/notation-appendices.itely
#. @node in ../../../Documentation/fr/user/notation-appendices.itely
#. @appendixsec in ../../../Documentation/fr/user/notation-appendices.itely
-#, fuzzy
msgid "Layout properties"
-msgstr "Eigenschaften von Musikobjekten"
+msgstr "Eigenschaften des Layouts"
#. @node in ../../../Documentation/user/notation-appendices.itely
#. @appendixsec in ../../../Documentation/user/notation-appendices.itely
#. @node in ../../../Documentation/fr/user/notation-appendices.itely
#. @appendixsec in ../../../Documentation/fr/user/notation-appendices.itely
-#, fuzzy
msgid "Identifiers"
-msgstr "Quelldateien"
+msgstr "Bezeichner"
#. @node in ../../../Documentation/user/notation-appendices.itely
#. @appendixsec in ../../../Documentation/user/notation-appendices.itely
#. @node in ../../../Documentation/fr/user/notation-appendices.itely
#. @appendixsec in ../../../Documentation/fr/user/notation-appendices.itely
-#, fuzzy
msgid "Scheme functions"
-msgstr "Musikalische Funktionen"
+msgstr "Scheme-Funktionen"
#. @node in ../../../Documentation/user/cheatsheet.itely
#. @appendix in ../../../Documentation/user/cheatsheet.itely
msgstr "Befehlsübersicht"
#. @top in ../../../Documentation/fr/user/lilypond-learning.tely
-#, fuzzy
msgid "GNU LilyPond --- manuel d'initiation"
msgstr "GNU LilyPond -- Das Handbuch zum Lernen"
msgstr ""
#. @subsubheading in ../../../Documentation/fr/user/introduction.itely
-#, fuzzy
msgid "Autre documentation"
-msgstr "Die Dokumentation übersetzen"
+msgstr "Andere Dokumentation"
#. @rglos in ../../../Documentation/fr/user/tutorial.itely
msgid "fourth"
msgstr "Tipparbeit sparen durch Bezeichner und Funktionen"
#. @top in ../../../Documentation/fr/user/lilypond-program.tely
-#, fuzzy
msgid "GNU LilyPond --- utilisation des programmes"
msgstr "GNU LilyPond -- Die Programmbenutzung"
#. @top in ../../../Documentation/fr/user/lilypond.tely
-#, fuzzy
msgid "GNU LilyPond --- le système de gravure musicale"
-msgstr "GNU LilyPond -- Das Handbuch zum Lernen"
+msgstr "GNU LilyPond -- Das Notensatzprogramm"
#. @node in ../../../Documentation/fr/user/pitches.itely
#. @unnumberedsubsubsec in ../../../Documentation/fr/user/pitches.itely
#. @subsubsection in ../../../Documentation/es/user/rhythms.itely
#. @node in ../../../Documentation/de/user/rhythms.itely
#. @unnumberedsubsubsec in ../../../Documentation/de/user/rhythms.itely
-#, fuzzy
+#
+#
msgid "Barnumber check"
-msgstr "Takt- und Taktzahlüberprüfung"
+msgstr "Taktzahlüberprüfung"
#. @node in ../../../Documentation/fr/user/rhythms.itely
#. @unnumberedsubsubsec in ../../../Documentation/fr/user/rhythms.itely
#. @subsection in ../../../Documentation/es/user/bagpipes.itely
#. @node in ../../../Documentation/de/user/bagpipes.itely
#. @subsection in ../../../Documentation/de/user/bagpipes.itely
-#, fuzzy
msgid "Bagpipe"
msgstr "Dudelsack"
#. @subsection in ../../../Documentation/es/user/ancient.itely
#. @node in ../../../Documentation/de/user/ancient.itely
#. @subsection in ../../../Documentation/de/user/ancient.itely
-#, fuzzy
msgid "Ancient TODO"
-msgstr "Pausen Alter Musik"
+msgstr "Alte Musik"
#. @node in ../../../Documentation/fr/user/input.itely
#. @subsection in ../../../Documentation/fr/user/input.itely
#. @node in ../../../Documentation/de/user/input.itely
#. @subsection in ../../../Documentation/de/user/input.itely
-#, fuzzy
msgid "Controlling direction"
-msgstr "Auflösung von Zusammenstößen"
+msgstr "Richtungskontrolle"
#. @node in ../../../Documentation/fr/user/changing-defaults.itely
#. @section in ../../../Documentation/fr/user/changing-defaults.itely
msgstr "Intervalle"
#. @top in ../../../Documentation/es/user/lilypond.tely
-#, fuzzy
msgid "GNU LilyPond --- El tipografiador de música"
-msgstr "GNU LilyPond -- Die Programmbenutzung"
+msgstr "GNU LilyPond -- Das Notensatzprogramm"
#. @rglos in ../../../Documentation/es/user/expressive.itely
-#, fuzzy
msgid "marcato"
-msgstr "Artikulationszeichen"
+msgstr "Marcato"
#. @rglos in ../../../Documentation/es/user/expressive.itely
msgid "stopped"
msgstr ""
#. @rglos in ../../../Documentation/es/user/expressive.itely
-#, fuzzy
msgid "hairpin"
-msgstr "Kreuz"
+msgstr "Gabel"
#. @rglos in ../../../Documentation/es/user/expressive.itely
-#, fuzzy
msgid "broken chord"
-msgstr "Noten und Akkordbezeichnungen"
+msgstr "gebrochener Akkord"
#. @node in ../../../Documentation/es/user/chords.itely
#. @section in ../../../Documentation/es/user/chords.itely
#. @node in ../../../Documentation/de/user/chords.itely
#. @section in ../../../Documentation/de/user/chords.itely
-#, fuzzy
msgid "Chords Blah"
msgstr "Akkorde"
#. @subsection in ../../../Documentation/es/user/guitar.itely
#. @node in ../../../Documentation/de/user/guitar.itely
#. @subsection in ../../../Documentation/de/user/guitar.itely
-#, fuzzy
msgid "Guitar TODO"
msgstr "Gitarre"
#. @subsection in ../../../Documentation/es/user/strings.itely
#. @node in ../../../Documentation/de/user/strings.itely
#. @subsection in ../../../Documentation/de/user/strings.itely
-#, fuzzy
msgid "Orchestral strings TODO"
-msgstr "Orchesterstreicher"
+msgstr "Streicher"
#. @top in ../../../Documentation/de/user/lilypond-learning.tely
-#, fuzzy
msgid "GNU LilyPond -- Handbuch zum Lernen"
-msgstr "GNU LilyPond -- Das Handbuch zum Lernen"
+msgstr "GNU LilyPond -- Handbuch zum Lernen"
#. @subheading in ../../../Documentation/de/user/introduction.itely
msgid "User manual"
-msgstr "Handbuch zum Lernen"
+msgstr "Benutzerhandbuch"
#. @subsubheading in ../../../Documentation/de/user/introduction.itely
-#, fuzzy
msgid "Learning manual"
msgstr "Handbuch zum Lernen (LH)"
#. @subsubheading in ../../../Documentation/de/user/introduction.itely
-#, fuzzy
msgid "Notation reference"
msgstr "Notationsreferenz (NR)"
msgstr "Eine Orchesterstimme"
#. @top in ../../../Documentation/de/user/lilypond-program.tely
-#, fuzzy
msgid "GNU LilyPond -- Programmbenutzung"
-msgstr "GNU LilyPond -- Die Programmbenutzung"
+msgstr "GNU LilyPond -- Programmbenutzung"
#. @top in ../../../Documentation/de/user/lilypond.tely
-#, fuzzy
msgid "GNU LilyPond -- Das Notationsprogramm"
-msgstr "GNU LilyPond -- Die Programmbenutzung"
+msgstr "GNU LilyPond -- Das Notationsprogramm"
#. @node in ../../../Documentation/de/user/editorial.itely
#. @unnumberedsubsubsec in ../../../Documentation/de/user/editorial.itely
#. @node in ../../../Documentation/de/user/piano.itely
#. @subsection in ../../../Documentation/de/user/piano.itely
msgid "TODO piano node fix"
-msgstr ""
+msgstr "Klaviernotation"
msgid "Up:"
msgstr "Nach oben:"
"Project-Id-Version: es\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-03-23 16:29+0100\n"
-"PO-Revision-Date: 2008-03-23 10:17+0100\n"
+"PO-Revision-Date: 2008-03-25 18:45+0100\n"
"Last-Translator: Francisco Vila <francisco.vila@hispalinux.es>\n"
"Language-Team: Español <traductores@es.gnome.org>\n"
"MIME-Version: 1.0\n"
msgstr "Propiedades de los interfaces"
#. @subheading in ../../../Documentation/user/tweaks.itely
-#, fuzzy
msgid "Specifying the context in lyric mode"
msgstr "Especificación del contexto en modo letra"
#. @appendixsubsec in ../../../Documentation/es/user/templates.itely
#. @appendixsubsec in ../../../Documentation/de/user/templates.itely
msgid "Notes, lyrics, and chords."
-msgstr "Notas, letra y acordes"
+msgstr "Notas, letra y acordes."
#. @node in ../../../Documentation/user/templates.itely
#. @appendixsec in ../../../Documentation/user/templates.itely
msgstr "Texinfo"
#. @appendixsubsec in ../../../Documentation/user/templates.itely
-#, fuzzy
msgid "xelatex"
-msgstr "Plantillas"
+msgstr "xelatex"
#. @node in ../../../Documentation/user/scheme-tutorial.itely
#. @appendix in ../../../Documentation/user/scheme-tutorial.itely
#. @node in ../../../Documentation/user/scheme-tutorial.itely
#. @appendixsec in ../../../Documentation/user/scheme-tutorial.itely
-#, fuzzy
msgid "Tweaking with Scheme"
-msgstr "Trucos avanzados con Scheme"
+msgstr "Trucos con Scheme"
#. @node in ../../../Documentation/user/fdl.itexi
#. @appendix in ../../../Documentation/user/fdl.itexi
msgstr "silencios multicompás"
#. @rglos in ../../../Documentation/user/rhythms.itely
-#, fuzzy
msgid "church rests"
-msgstr "modo eclesiástico"
+msgstr "silencios eclesiásticos"
#. @node in ../../../Documentation/user/rhythms.itely
#. @subsection in ../../../Documentation/user/rhythms.itely
#. @rglos in ../../../Documentation/user/expressive.itely
#. @rglos in ../../../Documentation/es/user/expressive.itely
msgid "tenuto"
-msgstr ""
+msgstr "tenuto"
#. @rglos in ../../../Documentation/user/expressive.itely
#. @rglos in ../../../Documentation/es/user/expressive.itely
-#, fuzzy
msgid "accent"
-msgstr "alteración accidental"
+msgstr "acento"
#. @rglos in ../../../Documentation/user/expressive.itely
#. @rglos in ../../../Documentation/es/user/expressive.itely
msgid "staccato"
-msgstr ""
+msgstr "staccato"
#. @rglos in ../../../Documentation/user/expressive.itely
#. @rglos in ../../../Documentation/es/user/expressive.itely
msgid "portato"
-msgstr ""
+msgstr "portato"
#. @node in ../../../Documentation/user/expressive.itely
#. @subsection in ../../../Documentation/user/expressive.itely
msgstr "Glissando"
#. @rglos in ../../../Documentation/user/expressive.itely
-#, fuzzy
msgid "glissando"
-msgstr "Glissando"
+msgstr "glissando"
#. @node in ../../../Documentation/user/expressive.itely
#. @subsubsection in ../../../Documentation/user/expressive.itely
#. @rglos in ../../../Documentation/user/expressive.itely
#. @rglos in ../../../Documentation/es/user/expressive.itely
-#, fuzzy
msgid "arpeggio"
-msgstr "Arpegio"
+msgstr "arpegio"
#. @node in ../../../Documentation/user/expressive.itely
#. @subsubsection in ../../../Documentation/user/expressive.itely
#. @rglos in ../../../Documentation/user/expressive.itely
#. @rglos in ../../../Documentation/es/user/expressive.itely
-#, fuzzy
msgid "trill"
-msgstr "Trinos"
+msgstr "trino"
#. @node in ../../../Documentation/user/repeats.itely
#. @section in ../../../Documentation/user/repeats.itely
#. @subsection in ../../../Documentation/user/repeats.itely
#. @node in ../../../Documentation/es/user/repeats.itely
#. @subsection in ../../../Documentation/es/user/repeats.itely
-#, fuzzy
msgid "Writing long repeats"
-msgstr "Escritura de las repeticiones"
+msgstr "Escribir repeticiones largas"
#. @node in ../../../Documentation/user/repeats.itely
#. @subsubsection in ../../../Documentation/user/repeats.itely
#. @rglos in ../../../Documentation/user/repeats.itely
#. @rglos in ../../../Documentation/es/user/repeats.itely
-#, fuzzy
msgid "repeat"
-msgstr "Repeticiones"
+msgstr "repetición"
#. @rglos in ../../../Documentation/user/repeats.itely
#. @rglos in ../../../Documentation/es/user/repeats.itely
msgid "volta"
-msgstr ""
+msgstr "primera y segunda vez"
#. @node in ../../../Documentation/user/repeats.itely
#. @subsubsection in ../../../Documentation/user/repeats.itely
#. @node in ../../../Documentation/es/user/repeats.itely
#. @subsubsection in ../../../Documentation/es/user/repeats.itely
-#, fuzzy
msgid "Manual repeat marks"
-msgstr "Comandos de repetición manual"
+msgstr "Marcas de repetición manual"
#. @node in ../../../Documentation/user/repeats.itely
#. @subsubsection in ../../../Documentation/user/repeats.itely
#. @node in ../../../Documentation/es/user/repeats.itely
#. @subsubsection in ../../../Documentation/es/user/repeats.itely
-#, fuzzy
msgid "Written-out repeats"
-msgstr "Escritura de las repeticiones"
+msgstr "Repeticiones explícitas"
#. @node in ../../../Documentation/user/repeats.itely
#. @subsection in ../../../Documentation/user/repeats.itely
#. @node in ../../../Documentation/es/user/repeats.itely
#. @subsection in ../../../Documentation/es/user/repeats.itely
-#, fuzzy
msgid "Short repeats"
-msgstr "Otras repeticiones"
+msgstr "Repeticiones cortas"
#. @node in ../../../Documentation/user/repeats.itely
#. @subsubsection in ../../../Documentation/user/repeats.itely
#. @node in ../../../Documentation/es/user/repeats.itely
#. @subsubsection in ../../../Documentation/es/user/repeats.itely
-#, fuzzy
msgid "Percent repeats"
-msgstr "Repeticiones de compás"
+msgstr "Repeticiones de compás o parte de ellos"
#. @node in ../../../Documentation/user/repeats.itely
#. @subsubsection in ../../../Documentation/user/repeats.itely
#. @node in ../../../Documentation/user/staff.itely
#. @subsubsection in ../../../Documentation/user/staff.itely
-#, fuzzy
msgid "Initiating new staves"
-msgstr "Ocultar pentagramas"
+msgstr "Preparar pentagramas nuevos"
#. @rglos in ../../../Documentation/user/staff.itely
msgid "staff"
#. @node in ../../../Documentation/user/staff.itely
#. @subsubsection in ../../../Documentation/user/staff.itely
-#, fuzzy
msgid "Grouping staves"
-msgstr "Ocultar pentagramas"
+msgstr "Agrupar pentagramas"
#. @rglos in ../../../Documentation/user/staff.itely
msgid "bracket"
#. @node in ../../../Documentation/user/staff.itely
#. @subsection in ../../../Documentation/user/staff.itely
-#, fuzzy
msgid "Modifying single staves"
-msgstr "Modificación de grupos anidados"
+msgstr "Modificación de pentagramas sueltos"
#. @node in ../../../Documentation/user/staff.itely
#. @subsubsection in ../../../Documentation/user/staff.itely
#. @node in ../../../Documentation/user/staff.itely
#. @subsubsection in ../../../Documentation/user/staff.itely
-#, fuzzy
msgid "Ossia staves"
-msgstr "Sistemas de piano"
+msgstr "Pentagramas de Ossia"
#. @rglos in ../../../Documentation/user/staff.itely
msgid "Frenched staff"
#. @node in ../../../Documentation/de/user/ancient.itely
#. @unnumberedsubsubsec in ../../../Documentation/de/user/ancient.itely
msgid "Figured bass"
-msgstr "Bajo figurado"
+msgstr "Bajo cifrado"
#. @node in ../../../Documentation/user/input.itely
#. @chapter in ../../../Documentation/user/input.itely
#. @subsection in ../../../Documentation/user/input.itely
#. @node in ../../../Documentation/es/user/input.itely
#. @subsection in ../../../Documentation/es/user/input.itely
-#, fuzzy
msgid "Controlling direction and placement"
-msgstr "Control de la dirección"
+msgstr "Control de la dirección y la posición"
#. @node in ../../../Documentation/user/input.itely
#. @subsection in ../../../Documentation/user/input.itely
#. @node in ../../../Documentation/es/user/input.itely
#. @subsection in ../../../Documentation/es/user/input.itely
msgid "When to add a -"
-msgstr ""
+msgstr "Cuándo añadir un guión"
#. @node in ../../../Documentation/user/input.itely
#. @section in ../../../Documentation/user/input.itely
#. @node in ../../../Documentation/user/changing-defaults.itely
#. @section in ../../../Documentation/user/changing-defaults.itely
msgid "Discussion of specific tweaks"
-msgstr ""
+msgstr "Discusión sobre trucos específicos"
#. @node in ../../../Documentation/user/changing-defaults.itely
#. @subsection in ../../../Documentation/user/changing-defaults.itely
-#, fuzzy
msgid "Line styles"
-msgstr "Longitud de la línea"
+msgstr "Estilos de línea"
#. @node in ../../../Documentation/user/changing-defaults.itely
#. @subsection in ../../../Documentation/user/changing-defaults.itely
-#, fuzzy
msgid "Controlling visibility of objects"
-msgstr "Colisiones de objetos"
+msgstr "Control de la visibilidad de los objetos"
#. @node in ../../../Documentation/user/programming-interface.itely
#. @chapter in ../../../Documentation/user/programming-interface.itely
#. @subsubheading in ../../../Documentation/es/user/notation-appendices.itely
#. @subsubheading in ../../../Documentation/de/user/notation-appendices.itely
msgid "Color Names without a numerical suffix:"
-msgstr "Nombres de los colores sin sufijo numérico"
+msgstr "Nombres de los colores sin sufijo numérico:"
#. @subsubheading in ../../../Documentation/user/notation-appendices.itely
#. @subsubheading in ../../../Documentation/fr/user/notation-appendices.itely
msgstr "Ahorrar tecleo mediante identificadores y funciones"
#. @top in ../../../Documentation/fr/user/lilypond-program.tely
-#, fuzzy
msgid "GNU LilyPond --- utilisation des programmes"
-msgstr "GNU LilyPond --- manual de utilización del programa"
+msgstr "GNU LilyPond --- utilisation des programmes"
#. @top in ../../../Documentation/fr/user/lilypond.tely
msgid "GNU LilyPond --- le système de gravure musicale"
#. @subsubheading in ../../../Documentation/es/user/macros.itexi
msgid "Instrucciones predefinidas"
-msgstr ""
+msgstr "Instrucciones predefinidas"
#. @subsubheading in ../../../Documentation/es/user/macros.itexi
msgid "Fragmentos de código seleccionados"
-msgstr ""
+msgstr "Fragmentos de código seleccionados"
#. @subsubheading in ../../../Documentation/es/user/macros.itexi
msgid "Propiedades trucadas frecuentemente"
-msgstr ""
+msgstr "Propiedades trucadas frecuentemente"
#. @subsubheading in ../../../Documentation/es/user/macros.itexi
msgid "Véase también"
-msgstr ""
+msgstr "Véase también"
#. @subsubheading in ../../../Documentation/es/user/macros.itexi
msgid "Advertencias y problemas conocidos"
-msgstr ""
+msgstr "Advertencias y problemas conocidos"
#. @rglos in ../../../Documentation/es/user/tutorial.itely
msgid "redonda"
-msgstr ""
+msgstr "redonda"
#. @rglos in ../../../Documentation/es/user/tutorial.itely
msgid "blanca"
-msgstr ""
+msgstr "blanca"
#. @rglos in ../../../Documentation/es/user/tutorial.itely
-#, fuzzy
msgid "negra"
-msgstr "intervalo"
+msgstr "negra"
#. @top in ../../../Documentation/es/user/lilypond.tely
msgid "GNU LilyPond --- El tipografiador de música"
msgstr "GNU LilyPond --- El tipografiador de música"
#. @rglos in ../../../Documentation/es/user/expressive.itely
-#, fuzzy
msgid "marcato"
-msgstr "articulación"
+msgstr "marcato"
#. @rglos in ../../../Documentation/es/user/expressive.itely
msgid "stopped"
-msgstr ""
+msgstr "apagada"
#. @rglos in ../../../Documentation/es/user/expressive.itely
msgid "staccatissimo"
-msgstr ""
+msgstr "staccatissimo"
#. @rglos in ../../../Documentation/es/user/expressive.itely
msgid "hairpin"
msgstr "regulador"
#. @rglos in ../../../Documentation/es/user/expressive.itely
-#, fuzzy
msgid "broken chord"
-msgstr "Notas y acordes"
+msgstr "acorde quebrado"
#. @node in ../../../Documentation/es/user/chords.itely
#. @section in ../../../Documentation/es/user/chords.itely
msgid "Table of Contents"
msgstr "Índice general"
-#~ msgid "Modifying tuplet bracket length"
-#~ msgstr "Modificación de la longitud del corchete de grupo"
-
-#~ msgid "Compressing music"
-#~ msgstr "Compresión de la música"
-
-#~ msgid "Bugs"
-#~ msgstr "Fallos"
-
-#~ msgid "Educational use"
-#~ msgstr "Utilización educativa"
useful when transcribing mensural music, e.g., for the incipit. The
@code{mensural} style produces note heads that mimic the look of note
heads in historic printings of the 16th century. Finally, the
-@code{petrucci} style also mimicks historic printings, but uses bigger
+@code{petrucci} style also mimics historic printings, but uses bigger
note heads.
The following example demonstrates the @code{neomensural} style
@end example
@noindent
-at the top of your input file. This lets you add the special gracenotes
+at the top of your input file. This lets you add the special grace notes
common to bagpipe music with short commands. For example, you could
write @code{\taor} instead of
signatures are normally synchronized across the score. This is done
by the @code{Timing_translator} and @code{Default_bar_line_engraver}.
This plug-in keeps an administration of time signature, location
-within the measure, etc. By moving thes engraver from @code{Score} to
+within the measure, etc. By moving these engraver from @code{Score} to
@code{Staff} context, we can have a score where each staff has its own
time signature.
@node Aligning contexts
@subsection Aligning contexts
-New contexts may be aligned above or below exisiting contexts. This
+New contexts may be aligned above or below existing contexts. This
could be useful in setting up a vocal staff (@rlearning{Vocal ensembles}) and
in ossia,
-FIXME: this section doens't work in pdf. (?)
+FIXME: this section doesn't work in pdf. (?)
@cindex ossia
@findex alignAboveContext
Contexts can have properties, which are usually named in
@code{studlyCaps}. They mostly control the translation from
-music to notatino, eg. @code{localKeySignature} (for determining
+music to notation, eg. @code{localKeySignature} (for determining
whether to print accidentals), @code{measurePosition} (for
determining when to print a bar line). Context properties can
change value over time while interpreting a piece of music;
\set @var{context}.@var{name} #'@var{property} = #(cons (cons '@var{property} @var{value}) <previous value of @var{context})
@end example
-The value of @code{context} (the alist) is used to initalize
+The value of @code{context} (the alist) is used to initialize
the properties of individual grobs. Grobs also have
properties, named in Scheme style, with
@code{dashed-words}. The values of grob properties change
@end example
To get this information into @code{chordNameExceptions} takes a little
-manoeuvring. The following code transforms @code{chExceptionMusic}
+maneuvering. The following code transforms @code{chExceptionMusic}
(which is a sequential music) into a list of exceptions.
@example
(sequential-music-to-chord-exceptions chExceptionMusic #t)
instruments: it specifies cabling, a serial protocol and a file
format. The MIDI file format is a de facto standard format for
exporting music from other programs, so this capability may come in
-useful when importing files from a program that has a convertor for a
+useful when importing files from a program that has a converter for a
direct format.
@command{midi2ly} converts tracks into @internalsref{Staff} and
@funindex \huge
@code{\huge}.
-@snippets
-
@seealso
Snippets: @lsrdir{Editorial,Editorial-annotations}.
Fingering instructions can be entered using
@var{note}-@var{digit}:
-
@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
c4-1 d-2 f-4 e-3
@end lilypond
-Use markup texts for finger changes.
+Markup texts may be used for finger changes.
@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
c4-1 d-2 f-4 c^\markup { \finger "2 - 3" }
@snippets
-@code{fingeringOrientations} are used to control where the fingering
-numbers are placed.
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{controlling-the-placement-of-chord-fingerings.ly}
-@lilypond[quote,verbatim,ragged-right,fragment,relative=2]
-\set fingeringOrientations = #'(left)
-<c-1 e-3 a-5 > 4
-\set fingeringOrientations = #'(down)
-<c-1 e-3 a-5 >
-\set fingeringOrientations = #'(right)
-<c-1 e-3 a-5 >
-\set fingeringOrientations = #'(up)
-<c-1 e-3 a-5 >
-\set fingeringOrientations = #'(left down)
-<c-1 e-3 a-5 > 2
-\set fingeringOrientations = #'(up right down)
-<c-1 e-3 a-5 >
-@end lilypond
@seealso
-@ref{Controlling direction and placement}
+
+Notation Reference: @ref{Controlling direction and placement}
Snippets: @lsrdir{Editorial,Editorial-annotations}.
Snippets: @lsrdir{Editorial,Editorial-annotations}.
+@knownissues
+
+Rests cannot be parenthesized.
+
@node Stems
@subsubsection Stems
@cindex stem, down
@cindex stem, neutral
-To change the direction of stems on the center line of the staff, use
-
-@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
-a4 b c b
-\override Stem #'neutral-direction = #up
-a4 b c b
-\override Stem #'neutral-direction = #down
-a4 b c b
-@end lilypond
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{default-direction-of-stems-on-the-center-line-of-the-staff.ly}
@seealso
-@ref{Controlling direction and placement}.
+Notation Reference: @ref{Controlling direction and placement}.
Snippets: @lsrdir{Editorial,Editorial-annotations}.
\new Voice \with { \consists "Balloon_engraver" }
{
\balloonGrobText #'Stem #'(3 . 4) \markup { "I'm a Stem" }
- a4
+ a8
+ \balloonGrobText #'Rest #' (-4 . -4) \markup { "I'm a rest" }
+ r
<c, g'-\balloonText #'(-2 . -2) \markup { "I'm a note head" } c>2.
}
@end lilypond
}
\new Score \with {
- %% by default this centers grid lines horizontally below and to the
+ % 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
\consists "Grid_line_span_engraver"
@snippets
-To change the grid lines use \override.
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{grid-lines-changing-their-appearance.ly}
-@lilypond[quote,verbatim,ragged-right]
-\layout {
- \context {
- \Staff
- \consists "Grid_point_engraver"
- gridInterval = #(ly:make-moment 1 4)
- }
-}
-
-\new Score \with {
- \consists "Grid_line_span_engraver"
- % this moves them to the right half a staff space
- \override NoteColumn #'X-offset = #-0.5
- }
-
-\new ChoirStaff <<
- \new Staff {
- \relative c'' {
- \stemUp
- c'4. d8 e8 f g4
- }
- }
- \new Staff {
- \relative c {
- % this moves them up one staff space from the default position
- \override Score.GridLine #'extra-offset = #'( 0.0 . 1.0 )
- \stemDown
- \clef bass
- \once \override Score.GridLine #'thickness = #5.0
- c4
- \once \override Score.GridLine #'thickness = #1.0
- g'
- \once \override Score.GridLine #'thickness = #3.0
- f
- \once \override Score.GridLine #'thickness = #5.0
- e
- }
- }
->>
-@end lilypond
@seealso
Text style dynamic changes (such as @notation{cresc.} and
@notation{dim.}) are printed with a dashed line showing their
-extent. To surpress printing this line, use
+extent. To suppress printing this line, use
@example
\override DynamicTextSpanner #'dash-period = #-1.0
@noindent
Note that the size of the clef is the same as a clef printed
following a clef change -- slightly smaller than the clef
-at the begining of the line. This is usual for clefs printed
+at the beginning of the line. This is usual for clefs printed
in the middle of a line.
The ossia section may be placed above the staff
@end lilypond
This example uses @code{\with}, which will be explained more
-fully later. It is a means of modifying the default behaviour
+fully later. It is a means of modifying the default behavior
of a single Staff. Here it says that the new staff should be
placed above the staff called @qq{main} instead of the default
position which is below.
@end lilypond
-This example has just two voices, but the same contruct may be
+This example has just two voices, but the same construct may be
used to encode three or more voices by adding more back-slash
separators.
\relative c' @{ noteE ... @}
@end example
-Let us finally analyse the voices in a more complex piece of
+Let us finally analyze the voices in a more complex piece of
music. Here are
the notes from the first two bars of the second of Chopin's
Deux Nocturnes, Op 32. This example will be used at later
@lilypond[quote,ragged-right,verbatim]
\relative c'{
- % Default behaviour or behaviour after \oneVoice
+ % Default behavior or behavior after \oneVoice
c d8 ~ d e4 ( f g a ) b-> c
}
@end lilypond
@funindex \shiftOnn
@funindex \shiftOnnn
-Closely spaced notes in a chord, or notes occuring at the same
+Closely spaced notes in a chord, or notes occurring at the same
time in different voices, are arranged in two, occasionally more,
columns to prevent the note heads overlapping. These are called
note columns. There are separate columns for each voice, and
in @emph{Contexts}. We have already met the
@code{Voice} context.
Others are the @code{Staff} and @code{Score} contexts.
-Contexts are hierarchical to reflect the heirarchical nature of
+Contexts are hierarchical to reflect the hierarchical nature of
a musical score.
For example: a @code{Staff} context can contain many
@code{Voice} contexts, and a @code{Score} context can
lyrics, percussion, fret boards, figured bass, etc.
The names of all context types are formed from one or more
-words, each word being capitalised and joined immediately to the
+words, each word being capitalized and joined immediately to the
preceding word with no hyphen or underscore, e.g.,
@code{GregorianTranscriptionStaff}.
in the printed score.
Engravers all have compound names formed from words which
-describe their function. Just the first word is capitalised,
+describe their function. Just the first word is capitalized,
and the remainder are joined to it with underscores. Thus
the @code{Staff_symbol_engraver} is responsible for creating the
lines of the staff, the @code{Clef_engraver} determines and sets
@item Staff_symbol_engraver
@tab Engraves the five (by default) lines of the staff
@item Stem_engraver
- @tab Creates stems and single-stem tremulos
+ @tab Creates stems and single-stem tremolos
@item Time_signature_engraver
@tab Creates time signatures
@end multitable
individual contexts. It is also possible to remove or add
engravers to every context of a specific type by placing the
commands in the appropriate context in a @code{\layout}
-block. For example, If we wanted to show ambiti for every
+block. For example, if we wanted to show an ambitus for every
staff in a four-staff score we could write
@lilypond[quote,verbatim,ragged-right]
\clef "bass"
\new Voice = "basses" @{ \global \bassMusic @}
>>
- \new Lyrics \lyricsto "basses" @{ bassWords @}
+ \new Lyrics \lyricsto "basses" @{ \bassWords @}
>> % end ChoirStaff
\new PianoStaff <<
the output. This can be compared to clipping a piece of a paper score
with scissors.
-This is done by definining the measures that need to be cut out
+This is done by defining the measures that need to be cut out
separately. For example, including the following definition
TODO: everything
-By default, lilypnod does a pretty jazz'n job of picking
+By default, lilypond does a pretty jazz'n job of picking
directions. But in some cases, it may be desirable to force a
direction.
brief
description of what they do (perhaps also with a note about what
default
-behaviour is associated with each of them, but this may be
+behavior is associated with each of them, but this may be
unmanageable),
should be there, and then we could simply list the remaining ones
without
It is also possible to build a documentation tree in
@file{out-www/online-root/}, with special processing, so it can be used
-on a website with content negociation for automatic language selection;
+on a website with content negotiation for automatic language selection;
this can be achieved by issuing
@example
possible to enclose verbatim only a part of the source file. If the
source file contain a comment containing @samp{begin verbatim} (without
quotes), quoting the source in the verbatim block will start after the
-last occurence of such a comment; similarly, quoting the source verbatim
-will stop just before the first occurence of a comment containing
+last occurrence of such a comment; similarly, quoting the source verbatim
+will stop just before the first occurrence of a comment containing
@samp{end verbatim}, it there is any. In the following source file
example, the music will be interpreted in relative mode, but the
verbatim quote will not show the @code{relative} block, i.e.
@end example
@itemx --left-padding=@var{amount}
-Pad EPS boxes by this much. @var{amount} is measured in milimeters,
+Pad EPS boxes by this much. @var{amount} is measured in millimeters,
and is 3.0 by default. This option should be used if the lines of
music stick out of the right margin.
@c usage: @lsr{ancient,Ancient-notation,custodes.ly}
@macro lsr{SECTION,DIR,TEXT}
@ifhtml
-@uref{source/input/lsr/snippets/\DIR\.html#\TEXT\,@file{\SECTION\/\TEXT\}}
+@uref{source/input/lsr/lilypond-snippets/\DIR\.html#\TEXT\,@file{\SECTION\/\TEXT\}}
@end ifhtml
@ifnothtml
@file{\SECTION\/\TEXT\}
@c usage: @lsrdir{ancient,Ancient-notation}
@macro lsrdir{SECTION,DIR}
@ifhtml
-@uref{source/input/lsr/snippets/\DIR\.html,\SECTION\}
+@uref{source/input/lsr/lilypond-snippets/\DIR\.html,\SECTION\}
@end ifhtml
@ifnothtml
\DIR\
A particular place of a score can be marked using the @code{\label}
command, either at top-level or inside music. This label can then be
-refered to in a markup, to get the number of the page where the marked
+referred to in a markup, to get the number of the page where the marked
point is placed, using the @code{\page-ref} markup command.
@lilypond[verbatim,line-width=11.0\cm]
@end enumerate
The reason why a gauge is needed is that, at the time markups are
-interpreted, the page breaking has not yet occured, so the page numbers
+interpreted, the page breaking has not yet occurred, so the page numbers
are not yet known. To work around this issue, the actual markup
interpretation is delayed to a later time; however, the dimensions of
the markup have to be known before, so a gauge is used to decide these
\fill-line { \null "Table des matières" \null }
\hspace #1
}
- %% use larfer font size
+ %% use larger font size
tocItemMarkup = \markup \large \fill-line {
\fromproperty #'toc:text \fromproperty #'toc:page
}
}
@end verbatim
-Note how the toc element text and page number are refered to in
+Note how the toc element text and page number are referred to in
the @code{tocItemMarkup} definition.
New commands and markups may also be defined to build more elaborated
X color names come several variants:
-Any name that is spelled as a single word with capitalisation
+Any name that is spelled as a single word with capitalization
(e.g. @q{LightSlateBlue}) can also be spelled as space separated
-words without capitalisation (e.g. @q{light slate blue}).
+words without capitalization (e.g. @q{light slate blue}).
The word @q{grey} can always be spelled @q{gray} (e.g. @q{DarkSlateGray}).
lines is made using the @code{make-justified-lines-markup-list}
function, which is related to the @code{\justified-lines}
built-in markup list command. An horizontal space is added at the
-begining using the @code{make-hspace-markup} function. Finally, the
+beginning using the @code{make-hspace-markup} function. Finally, the
markup list is interpreted using the @code{interpret-markup-list}
function.
@node Normal repeats
@subsubsection Normal repeats
-The syntax for a simple repeat is
+The syntax for a normal repeat is
@example
\repeat @var{variant} @var{repeatcount} @var{repeatbody}
@end example
-where @var{repeatbody} is a music expression.
+where @var{variant} is @qq{volta} and @var{repeatbody} is a music
+expression. Alternate endings can be produced using
+@code{\alternative}.
Normal repeats without alternate endings:
\repeat volta 2 { d4 e f g }
@end lilypond
-Normal repeats with alternate endings:
+Normal repeats with alternate endings:
@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
\repeat volta 2 { g f e d }
\alternative { {f2 d} {f\repeatTie f,} }
@end lilypond
-By default, the volta brackets will be drawn over all of the
-alternative music, but it is possible to shorten them by setting
-@code{voltaSpannerDuration}. In the next example, the bracket only
-lasts one measure, which is a duration of 3/4.
+@snippets
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-\time 3/4
-c c c
-\set Score.voltaSpannerDuration = #(ly:make-moment 3 4)
-\repeat volta 5 { d d d }
-\alternative { { e e e f f f }
-{ g g g } }
-@end lilypond
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{shortening-volta-brackets.ly}
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{adding-volta-brackets-to-extra-staves.ly}
-The @code{Volta_engraver} by default resides in the Score context, and
-brackets for the repeat are thus normally only printed over the
-topmost staff. This can be adjusted by adding @code{Volta_engraver}
-to the Staff context where you want the brackets to appear; see
-@ref{Modifying context plug-ins} and
-@c @lsr{repeats,volta@/-multi@/-staff@/.ly}.
-
-@lilypond[verbatim,ragged-right,quote]
-\score { <<
- \new Staff { \repeat volta 2 { c'1 } \alternative { c' } }
- \new Staff { \repeat volta 2 { c'1 } \alternative { c' } }
- \new Staff \with { \consists Volta_engraver } { c'2 g' e' a' }
- \new Staff { \repeat volta 2 { c'1 } \alternative { c' } }
- >> }
-@end lilypond
@c Is there a way to have a final bar ("|.") at the end of the
@c previous line? Doesn't seem to be.
If you want to start a repeat at the beginning of a line and have a
-double bar at the end of the previous line, use
+double bar at the end of the previous line, use @code{\bar}. See
+@ref{Bar lines} for more information.
@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
c4 c c c
\repeat volta 2 { c4 d e f }
@end lilypond
-see @ref{Bar lines} for more information.
@seealso
Notation Reference: @ref{Bar lines}, @ref{Modifying context plug-ins}.
-Snippets: @lsrdir{Repeats,Repeats}
+Snippets: @lsrdir{Repeats,Repeats}.
Internals Reference: @internalsref{VoltaBracket},
@internalsref{RepeatedMusic}, @internalsref{VoltaRepeatedMusic},
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)}
quarter note is entered using a @code{4} (since it is a 1/4 note),
and a half note is entered using a @code{2} (since it is a 1/2
note). For notes longer than a whole you must use the
-@code{\longa} (a double breve) and @code{\breve} commands.
+@code{\longa} (a double breve) and @code{\breve} commands.
Durations as short as 64th notes may be specified. Shorter values
are possible, but only as beamed notes.
@funindex \dotsNeutral
Dots are normally moved up to avoid staff lines, except in
-polyphonic situations. To force a particular direction manually,
+polyphonic situations. Predefined commands are available to
+force a particular direction manually, for details
see @ref{Controlling direction and placement}.
@predefined
-@code{\breve},
-@code{\longa},
-@code{\maxima},
+@code{\autoBeamOff},
@code{\dotsUp},
@code{\dotsDown},
@code{\dotsNeutral}.
@seealso
-Music Glossary:
-@rglos{breve},
-@rglos{longa},
+Music Glossary:
+@rglos{breve},
+@rglos{longa},
@rglos{note value},
@rglos{Duration names notes and rests}.
-Notation Reference:
-@ref{Automatic beams},
+Notation Reference:
+@ref{Automatic beams},
@ref{Ties},
-@ref{Writing rhythms},
-@ref{Writing rests},
+@ref{Writing rhythms},
+@ref{Writing rests},
@ref{Vocal music},
-@ref{Ancient notation},
+@ref{Ancient notation},
@ref{Proportional notation}.
-Snippets: @lsrdir{Rhythms,Rhythms}
+Snippets: @lsrdir{Rhythms,Rhythms}.
-Internals Reference:
+Internals Reference:
@internalsref{Dots},
@internalsref{DotColumn}.
@noindent
The duration of @var{music} will be multiplied by the
-fraction. The fraction's denominator will be printed over or
-under the notes, optionally with a bracket. The most common
+fraction. The fraction's denominator will be printed over or
+under the notes, optionally with a bracket. The most common
tuplet is the triplet in which 3 notes have the duration of 2, so
the notes are 2/3 of their written length.
@funindex tupletNumberFormatFunction
@funindex tupletSpannerDuration
-@lilypondfile [verbatim,lilyquote,ragged-right,texidoc]
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
{entering-several-tuplets-using-only-one--times-command.ly}
@funindex TupletNumber
-@c Sent to VV on 12 Feb - replace with @lilypondfile when available
-@c TODO and delete from here ...
-By default, only the numerator of the tuplet number
-is printed over the tuplet bracket, i.e. the denominator
-of the argument to the @code{\times} command. Alternatively,
-@var{num}:@var{den} of the tuplet number may be printed, or
-the tuplet number may be suppressed altogether.
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{changing-the-tuplet-number.ly}
-
-@lilypond[quote,fragment,relative=2,ragged-right,verbatim]
-\times 2/3 { c8 c c } \times 2/3 { c8 c c }
-\override TupletNumber #'text = #tuplet-number::calc-fraction-text
-\times 2/3 { c8 c c }
-\override TupletNumber #'transparent = ##t
-\times 2/3 { c8 c c }
-@end lilypond
-
-@c ... to here
-
-
-@c Sent to VV on 12 Feb - replace with @lilypondfile when available
-@c TODO and delete from here ...
-This artificial example shows how both manual and automatic line
-breaks may be permitted within a beamed tuplet. Note that such
-off-beat tuplets have to be beamed manually.
-
-@lilypond[quote,ragged-right,verbatim]
-\relative c'' {
- a8
- \repeat unfold 8 {\times 2/3 { c[ b a]}}
- % Insert a manual line break within a tuplet
- \times 2/3 { c[ b \bar "" \break a]}
- \repeat unfold 2 {\times 2/3 { c[ b a]}}
- c8
-}
-\layout {
- \context {
- \Voice
- % Permit line breaks within tuplets
- \remove "Forbid_line_break_engraver"
- % Allow beams to be broken at line breaks
- \override Beam #'breakable = ##t
- }
-}
-@end lilypond
-
-@c .. to here
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{permitting-line-breaks-within-beamed-tuplets.ly}
@seealso
-Music Glossary:
-@rglos{triplet},
+Music Glossary:
+@rglos{triplet},
@rglos{tuplet},
@rglos{polymetric}.
+Learning Manual: @rlearning{Tweaking methods}.
+
Notation Reference:
@ref{Time administration},
@ref{Scaling durations},
Snippets: @lsrdir{Rhythms,Rhythms}.
-Internals Reference:
+Internals Reference:
@internalsref{TupletBracket},
-@internalsref{TupletNumber},
+@internalsref{TupletNumber},
@internalsref{TimeScaledMusic}.
+@knownissues
+@cindex grace notes within tuplet brackets
+When the very first note on a staff is a grace note followed by a
+tuplet the grace note must be placed before the @code{\times}
+command to avoid errors. Anywhere else, grace notes may be
+placed within tuplet brackets.
+
@node Scaling durations
@subsubsection Scaling durations
@cindex scaling durations
@cindex durations, scaling
+TODO Change \compressMusic to \scaleDurations when implemented.
+
You can alter the duration of single notes, rests or chords by a
fraction @code{N/M} by appending @code{*N/M} (or @code{*N} if
@code{M} is 1) to the duration.
a4 a4
% Double the duration of chord
<a d>4*2
-% Duration of quarter, appears like sixteeth
+% Duration of quarter, appears like sixteenth
b16*4 c4
@end lilypond
@cindex compressing music
@funindex \compressMusic
-Longer stretches of music may be compressed by a fraction in
-the same way, as if every note, chord or rest had the fraction
+Longer stretches of music may be compressed by a fraction in
+the same way, as if every note, chord or rest had the fraction
as a multiplier. The general syntax of the command to do this
is:
Snippets: @lsrdir{Rhythms,Rhythms}
+
@node Ties
@subsubsection Ties
@warning{Ties should not be confused with @emph{slurs}, which
indicate articulation, or @emph{phrasing slurs}, which indicate
-musical phrasing. A tie is just a way of extending a note
+musical phrasing. A tie is just a way of extending a note
duration, similar to the augmentation dot.}
A tie is entered using the tilde symbol @code{~}
@code{\tieNeutral},
@code{\tieDotted},
@code{\tieDashed},
-@code{\tieSolid},
-@code{\repeatTie}.
+@code{\tieSolid}.
@snippets
-@c TODO Remove when snippet available - sent 15 Mar 08
-Ties are sometimes used to write out arpeggios. In this case, two
-tied notes need not be consecutive. This can be achieved by
-setting the @code{tieWaitForNote} property to true. The same
-feature is also useful, for example, to tie a tremolo to a chord,
-but in principle, it can also be used for ordinary, consecutive
-notes:
-
-@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
-\tieUp c8~ a \tieDown \tieDotted g~ c g2
-@end lilypond
-
-@c end of section to be removed
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{using-ties-with-arpeggios.ly}
-@c TODO Remove when snippet available - sent 15 Mar 08
-Ties may be engraved manually by changing the
-@code{tie-configuration} property of the @code{TieColumn} object.
-The first number indicates the distance from the center of the
-staff in staff-spaces, and the second number indicates the
-direction (1=up, -1=down).
-
-@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
-
-@c end of section to be removed
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{engraving-ties-manually.ly}
@seealso
@subsection Writing rests
@menu
-* Rests::
-* Skips::
-* Full measure rests::
+* Rests::
+* Skips::
+* Full measure rests::
@end menu
@node Rests
}
@end lilypond
-Whole measure rests, centered in middle of the measure, must be
-entered as multi-measure rests. They can be used for a single
+Whole measure rests, centered in the middle of the measure, must
+be entered as multi-measure rests. They can be used for a single
measure as well as many measures and are discussed in
@ref{Full measure rests}.
a4\rest d4\rest
@end lilypond
-@predefined
-
-@code{\rest},
-@code{\maxima},
-@code{\longa},
-@code{\breve}.
-
@snippets
-@lilypondfile [verbatim,lilyquote,ragged-right,texidoc]
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
{rest-styles.ly}
@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
% Skip the third beat in the first bar
a4 a4 s4 a4
-% Use predefined command to skip a whole note (bar)
+% Use skip command to skip a whole note (bar)
\skip 1
a2 a2
@end lilypond
@{ \skip 1 @}
@end example
-@predefined
-@code{\skip}
-
@seealso
Snippets: @lsrdir{Rhythms,Rhythms}
@node Full measure rests
@subsubsection Full measure rests
-@cindex multi measure rests
-@cindex full measure rests
-@cindex rest, multi measure
-@cindex rest, full measure
+@cindex multi-measure rests
+@cindex full-measure rests
+@cindex rest, multi-measure
+@cindex rest, full-measure
@cindex whole rest for a full measure
@funindex R
-Rests for one or more full measures are entered using @code{R}, in
-uppercase, followed by a duration. The duration should
-correspond to an integral number of measures, otherwise a barcheck
-warning is printed. A multi-measure rest is used
-principally to indicate that a part in a multi-part score should
-be silent:
+Rests for one or more full measures are entered like notes with
+the note name uppercase @code{R}:
@lilypond[quote,fragment,verbatim,relative=2]
-\set Score.skipBars = ##t
+% Rest bars contracted to single bar
+\compressFullBarRests
R1*4
R1*24
R1*4
b2^"Tutti" b4 a4
@end lilypond
-By default, a multi-measure rest is expanded in the printed score
-to show all the rest measures explicitly, or, as above, it can be
-condensed to a single measure containing a multi-measure rest
-symbol, with the number of measures of rest printed above the
-measure. This expansion is controlled by the property
-@code{Score.skipBars}. If this is set to true, empty measures
-will be condensed to a single measure:
+@funindex \expandFullBarRests
+@funindex \compressFullBarRests
+@cindex multi-measure rest, expanding
+@cindex multi-measure rest, contracting
+
+By default a multi-measure rest is expanded in the printed score
+to show all the rest measures explicitly or (as in the example
+above) it can be contracted to a single measure containing a
+multi-measure rest symbol, with the number of measures of rest
+printed above the measure:
@lilypond[quote,ragged-right,fragment,verbatim]
-% Default behaviour
-\time 4/4 r1 | R1 | R1*2 |
+% Default behavior
+\time 3/4 r2. | R2.*2 |
\time 2/4 R2 |
\time 4/4
-% Rest bars condensed to a single bar
-\set Score.skipBars = ##t
-R1*17 | R1*4 |
+% Rest bars contracted to single bar
+\compressFullBarRests
+r1 | R1*17 | R1*4 |
+% Rest bars expanded
+\expandFullBarRests
+\time 3/4
+R2.*2 |
@end lilypond
-The @code{1} in @code{R1} is similar to the duration notation
+The @code{1} in @code{R1} is similar to the duration notation
used for notes and is the length of a measure in 2/2 or 4/4 time.
The duration in a multi-measure rest must always be an integral
number of measure-lengths, so in other time signatures augmentation
dots or fractions must be used:
@lilypond[quote,ragged-right,fragment,verbatim]
-\set Score.skipBars = ##t
+\compressFullBarRests
\time 3/4
R2. | R2.*2
\time 13/8
R1*13/8 | R1*13/8*12 |
-\time 10/8
+\time 10/8
R4*5*4 |
@end lilypond
@cindex multi-measure rest, attaching fermata
Text can be added to multi-measure rests by using the
-@var{note} - @code{\markup} syntax described in @ref{Text markup}.
-The variable @code{\fermataMarkup} is provided for adding
-fermatas.
+@var{note} - @code{\markup} syntax described in
+@ref{Text markup}. The predefined command @code{\fermataMarkup}
+is provided for adding fermatas.
@lilypond[quote,ragged-right,verbatim,fragment]
-\set Score.skipBars = ##t
+\compressFullBarRests
\time 3/4
R2.*10^\markup { \italic "ad lib." }
R2.^\fermataMarkup
Text attached to a multi-measure rest will be centered above or
below it. Long text attached in this way does not cause the
measure to expand, and may collide with text in adjacent measures.
-Long text is better attached to a zero-length skip note preceding
-the rest, preceded by @code{\textLengthOn} (turn off again with
-@code{\textLengthOff}), since this will cause the measure to expand to
-accommodate the length of the text:
+This behavior may be changed with the predefined command
+@code{\textLengthOn}, which will cause following bars to expand
+as necessary to accommodate text. @code{\textLengthOff} returns
+to the default behavior. To left-align text within a bar attach
+it to a zero-length skip note preceding the rest.
@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
-\set Score.skipBars = ##t
+\compressFullBarRests
\textLengthOn
s1*0^\markup {[MAJOR GENERAL]}
R1*19
@noindent
Text attached to a skip note in this way is left-aligned to the
position where the note would be placed in the bar, and placed
-above the bar count numeral, but because the bar length is
+above the bar count numeral, but if the bar length is
determined by the length of the text, the text will appear to be
centered. If two (or more) texts are
attached to skip notes in a bar the bar length is determined by
@predefined
@code{\textLengthOn},
@code{\textLengthOff},
-@code{\fermataMarkup}
+@code{\fermataMarkup},
+@code{\compressFullBarRests},
+@code{\expandFullBarRests}.
@snippets
@cindex rest, church
@cindex kirchenpausen
-@c TODO Send as snippet "changing form of multi-measure rests"
-If there are 10 or fewer measures of rest, LilyPond prints
-a series of longa and breve rests (called in German
-Kirchenpausen - church rests) within the staff and
-prints a simple line otherwise. This default number of 10
-may be changed by an override:
-
-@lilypond[quote,ragged-right,fragment,verbatim]
-\set Score.skipBars = ##t
-R1*2 | R1*5 | R1*9
-\override MultiMeasureRest #'expand-limit = 3
-R1*2 | R1*5 | R1*9
-@end lilypond
-@c TODO End of snippet "changing form of multi-measure rests"
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{changing-form-of-multi--measure-rests.ly}
@cindex multi-measure rests, positioning
@cindex positioning multi-measure rests
-@c TODO Send as snippet "positioning multi-measure rests"
-Note that, unlike ordinary rests, there is no predefined command
-to change the vertical position on the staff of a multi-measure
-rest symbol of either form by attaching it to a note. However,
-in polyphonic music multi-measure rests in odd-numbered and
-even-numbered voices are vertically separated. The positioning
-of multi-measure rests can be controlled as follows:
-
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-% Multi-measure rests by default are set under the 2nd line
-R1
-% They can be moved with an override
-\override MultiMeasureRest #'staff-position = #-2
-R1
-% A value of 0 is the default position;
-% the following trick moves the rest to the center line
-\override MultiMeasureRest #'staff-position = #-0.01
-R1
-% Multimeasure rests in odd-numbered voices are under the top line
-<< {R1} \\ {a1} >>
-% Multi-measure rests in even-numbered voices are under the bottom line
-<< {c1} \\ {R1} >>
-% They remain separated even in empty bars
-<< {R1} \\ {R1} >>
-% This brings them together even though there are two voices
-\set Score.skipBars = ##t
-<<
- \revert MultiMeasureRest #'staff-position
- {R1*3}
-\\
- \revert MultiMeasureRest #'staff-position
- {R1*3}
->>
-@end lilypond
-@c End snippet "positioning multi-measure rests"
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{positioning-multi--measure-rests.ly}
@seealso
@rglos{multi-measure rest},
@rglos{church rests}.
-Notation Reference:
-@ref{Durations},
+Notation Reference:
+@ref{Durations},
@ref{Text},
-@ref{Text markup},
+@ref{Text markup},
@ref{Text scripts}.
Snippets: @lsrdir{Rhythms,Rhythms}
-Internals Reference:
+Internals Reference:
@internalsref{MultiMeasureRest},
@internalsref{MultiMeasureRestNumber},
@internalsref{MultiMeasureRestText}.
@knownissues
-If an attempt is made to use fingerings (e.g.,
+If an attempt is made to use fingerings (e.g.,
@code{R1*10-4}) to put numbers over multi-measure rests, the
-fingering numeral (4) may collide with the bar counter
-numeral (10).
+fingering numeral (4) may collide with the bar counter
+numeral (10).
@cindex condensing rests
+@cindex rests, condensing ordinary
-There is no way to automatically condense multiple ordinary rests
+There is no way to automatically condense multiple ordinary rests
into a single multi-measure rest.
+@cindex rests, collisions of
+
Multi-measure rests do not take part in rest collisions.
Be careful when entering multi-measure rests followed by whole
@cindex meter
@funindex \time
-The time signature is set with the @code{\time} command:
+The time signature is set as follows:
@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-\time 2/4 c2 \time 3/4 c2.
+\time 2/4 c2
+\time 3/4 c2.
@end lilypond
-@snippets
+@cindex Time signature, visibility of
+
+Time signatures by default are printed at the start of every line
+and whenever the time signature changes. If a change takes place
+at the end of a line a warning time signature sign is printed
+there. This default behavior may be changed, see
+@ref{Controlling visibility of objects}.
-The symbol that is printed can be customized with the @code{style}
-property. Setting it to @code{#'()} uses fraction style for 4/4
-and 2/2 time,
+@funindex \numericTimeSignature
+@funindex \defaultTimeSignature
+@cindex time signature style
+
+The symbol that is printed in 2/2 and 4/4 time can be customized
+to use a numeric style:
@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
+% Default style
\time 4/4 c1
\time 2/2 c1
-\override Staff.TimeSignature #'style = #'()
+% Change to numeric style
+\numericTimeSignature
\time 4/4 c1
\time 2/2 c1
-@end lilypond
-
-A time signature symbol is normally printed whenever the time
-signature changes. If this takes place at the end of a line a
-warning time signature sign is printed at the end of the line and
-again at the start of a new line. This default behaviour can be
-modified by setting the value of the @code{break-visibility}
-property. This takes three values which may be set to @code{#t}
-or @code{#f} to specify whether the corresponding time signature
-is visible or not. The order of the three values is @code{end of
-line visible}, @code{middle of line visible}, @code{beginning of
-line visible}.
-
-@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
-% Do not print any time signatures at end of line
-\override Staff.TimeSignature #'break-visibility = ##(#f #t #t)
+% Revert to default style
+\defaultTimeSignature
\time 4/4 c1
-\time 3/4 c2.
-% Do not print the following 9/8 time signature
-\once \override Staff.TimeSignature #'break-visibility = ##(#t #f #t)
-\time 9/8 c4. c c
\time 2/2 c1
-\break
-\time 9/8 c4. c c
-\time 12/8 c2. c2.
@end lilypond
-There are many more options for its layout. See @ref{Ancient time
-signatures}, for more examples.
+Ancient time signatures are covered in
+@ref{Ancient time signatures}.
+
+@predefined
+
+@code{\numericTimeSignature},
+@code{\defaultTimeSignature}.
+
+@snippets
+
+@c TODO Send as snippet called "setting measure and beat lengths"
+@c when example is added
@code{\time} sets the properties @code{timeSignatureFraction},
@code{beatLength}, and @code{measureLength} in the @code{Timing}
-context, which is normally aliased to @internalsref{Score}. The
-property @code{measureLength} determines where bar lines should be
-inserted, and how automatic beams should be generated. Changing
-the value of @code{timeSignatureFraction} also causes the symbol
-to be printed.
+context, which is normally aliased to @code{Score}. Changing the
+value of @code{timeSignatureFraction} causes the new time
+signature symbol to be printed without changing the other
+properties. The property @code{measureLength} determines where
+bar lines should be inserted and, with @code{beatLength}, how
+automatic beams should be generated.
+
+TODO Add example of using beatLength.
+@c beatLength is broken - see bug 511
+
+@c End of snippet
@cindex measure groupings
-
-More options are available through the Scheme function
-@code{set-time-signature}, which takes three arguments: the number
-of beats, the beat length, and the internal grouping of beats in
-the measure. If the @internalsref{Measure_grouping_engraver} is
-included, the function will also create
-@internalsref{MeasureGrouping} signs. Such signs ease reading
-rhythmically complex modern music. In the following example, the
-9/8 measure is subdivided in 2, 2, 2 and 3. This is passed to
-@code{set-time-signature} as the third argument @code{(2 2 2 3)}:
+@cindex beats, grouping
+@cindex grouping beats
+@cindex measure sub-grouping
+
+@c TODO Sent as snippet called "grouping beats" 25 Mar 08
+Options to group beats within a bar are available through the
+Scheme function @code{set-time-signature}, which takes three
+arguments: the number of beats, the beat length, and the internal
+grouping of beats in the measure. If the
+@internalsref{Measure_grouping_engraver} is included, the function
+will also create @internalsref{MeasureGrouping} signs. Such signs
+ease reading rhythmically complex modern music. In the example,
+the 9/8 measure is subdivided in 2, 2, 2 and 3. This is passed to
+@code{set-time-signature} as the third argument: @code{'(2 2 2 3)}:
@lilypond[quote,ragged-right,verbatim]
\score {
}
}
@end lilypond
+@c TODO End of snippet called "grouping beats"
+
+@cindex compound time signatures
+@cindex time signature, compound
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{compound-time-signatures.ly}
@seealso
-Snippets: @lsrdir{Rhythms,Rhythms}
+Music Glossary:
+@rglos{time signature}
-Internals Reference: @internalsref{TimeSignature}, and
-@internalsref{Timing_translator}.
+Notation Reference:
+@ruser{Ancient time signatures},
+@ruser{Time administration}.
+
+Snippets:
+@lsrdir{Rhythms,Rhythms}
-Examples: @c @lsr{contemporary,compound-time-signature.ly}.
+Internals Reference:
+@internalsref{TimeSignature},
+@internalsref{Timing_translator}.
@knownissues
@cindex partial measure
@cindex measure, partial
@cindex pickup measure
-@cindex shorten measures
+@cindex measure, change length
+@cindex measurePosition
@funindex \partial
-Partial or pickup measures, such as an anacrusis or upbeat, are
+Partial or pick-up measures, such as an anacrusis or upbeat, are
entered using the @code{\partial} command, with the syntax
@example
-\partial @var{duration}
+\partial @var{duration} @emph{notes}
@end example
-where @code{duration} is the rhythmic length to be added before
-the next measure:
+where @code{duration} is the rhythmic length of the @emph{notes}
+which are to be placed before the first complete measure:
@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
-\partial 16*5 c16 cis d dis e | a2. c,4 | b2
+\partial 16*5 c16 cis d dis e |
+a2. c,4 |
+b2
@end lilypond
Internally, this is translated into
@example
-\set Timing.measurePosition = -@var{length of duration}
+\set Timing.measurePosition = -@var{duration}
@end example
The property @code{measurePosition} contains a rational number
indicating how much of the measure has passed at this point. Note
-that this is a negative number; @code{\partial 4} is internally
-translated to mean @qq{there is a quarter note left in the bar.}
+that this is set to a negative number by the @code{\partial}
+command: i.e., @code{\partial 4} is internally translated to
+@code{-4}, meaning @qq{there is a quarter note left in the bar.}
+
+
+@seealso
+
+Music Glossary: @rglos{anacrusis}
+
+Notation Reference: @ref{Grace notes}
+Snippets: @lsrdir{Rhythms,Rhythms}
+
+Internal Reference: @internalsref{Timing_translator}
@knownissues
+@cindex grace notes, in anacruses
+
This command does not take into account grace notes at the start
-of the music. When a piece starts with grace notes in the
-pickup, then the @code{\partial} should follow the grace notes:
+of the music. If the pick-up starts with one or more grace
+notes, then the @code{\partial} should follow the grace note(s):
@lilypond[verbatim,quote,ragged-right,relative,fragment]
\grace f16
a2 g2
@end lilypond
-@code{\partial} is only intended to be used at the beginning of a
-piece. If you use it after the beginning, some odd warnings may
-occur.
-
-@seealso
-
-Snippets: @lsrdir{Rhythms,Rhythms}
+The @code{\partial} command is intended to be used only at the
+beginning of a piece. If you use it after the beginning, some
+odd warnings may occur.
@node Unmetered music
@subsubsection Unmetered music
-@cindex cadenza
@funindex \cadenzaOn
@funindex \cadenzaOff
+@cindex bar lines, turning off
+@cindex bar numbering, turning off
+@cindex cadenza
+@cindex unmetered music
Bar lines and bar numbers are calculated automatically. For
unmetered music (cadenzas, for example), this is not desirable.
-To turn off automatic bar lines and bar numbers, use the commands
-@code{\cadenzaOn} and @code{\cadenzaOff}.
+To turn off automatic bar lines and bar numbers, use the command
+@code{\cadenzaOn}, and use @code{\cadenzaOff} to turn them on
+again.
@lilypond[verbatim,quote,ragged-right,relative=2,fragment]
c4 d e d
cadenza were not there:
@lilypond[verbatim,quote,ragged-right,relative=2,fragment]
-\override Score.BarNumber #'break-visibility = ##( #t #t #t )
+% Show all bar numbers
+\override Score.BarNumber #'break-visibility = #all-visible
c4 d e d
\cadenzaOn
c4 c d8 d d f4 g4.
d4 e d c
@end lilypond
+@predefined
+
+@code{\cadenzaOn},
+@code{\cadenzaOff}.
+
+@seealso
+
+Music Glossary: @rglos{cadenza}
+
+Notation Reference: @ref{Controlling visibility of objects}
+
+Snippets: @lsrdir{Rhythms,Rhythms}
+
@knownissues
-LilyPond will only insert line breaks and page breaks at a
+LilyPond will insert line breaks and page breaks only at a
bar line. Unless the unmetered music ends before the end of the
staff line, you will need to insert invisible bar lines with
@noindent
to indicate where breaks can occur.
-@seealso
-
-Snippets: @lsrdir{Rhythms,Rhythms}
-
@node Polymetric notation
@subsubsection Polymetric notation
-@c TODO Work this example into the main text
-@c @lilypondfile [verbatim,lilyquote,ragged-right,texidoc]
-@c {printing-music-with-different-time-signatures.ly}
-
@cindex double time signatures
@cindex signatures, polymetric
@cindex polymetric signatures
@cindex meter, polymetric
-Music Glossary:
-@rglos{polymetric}
-@rglos{polymetric time signature}
-@rglos{meter}
+@strong{Alternating time signatures}
-Double time signatures are not supported explicitly, but they can
-be faked. In the next example, the markup for the time signature
-is created with a markup text. This markup text is inserted in
-the @internalsref{TimeSignature} grob. See also
-@c @lsr{contemporary,compound-time-signature}.
+Regularly alternating double time signatures are not supported
+explicitly, but they can be faked. In the next example, the
+double time signature is created with markup text, while the
+real time signature is set in the usual way with @code{\time}.
@lilypond[verbatim,ragged-right]
-% create 2/4 + 5/8
+% Create 9/8 split into 2/4 + 5/8
tsMarkup = \markup {
\override #'(baseline-skip . 2) \number {
\column { "2" "4" }
\override Staff.TimeSignature #'stencil =
#ly:text-interface::print
\override Staff.TimeSignature #'text = #tsMarkup
- \time 3/2
+ \time 9/8
+ c'2 \bar ":" c'4 c'4.
c'2 \bar ":" c'4 c'4.
}
@end lilypond
-Each staff can also have its own time signature. This is done by
-moving the @internalsref{Timing_translator} to the
-@internalsref{Staff} context.
+@strong{Staves with different time signatures, equal bar lengths}
+
+This notation can be created by setting a common time signature
+for each staff but replacing the symbol manually by setting
+@code{timeSignatureFraction} to the desired fraction and scaling
+the printed durations in each staff to the common time
+signature. This done with @code{\compressMusic}, which
+is used in a similar way to @code{\times}, but does not create
+a tuplet bracket, see @ref{Scaling durations}.
+
+In this example, music with the time signatures of 3/4, 9/8, and
+10/8 are used in parallel. In the second staff, shown durations
+are multiplied by 2/3, as 2/3 * 9/8 = 3/4, and in the third
+staff, shown durations are multiplied by 3/5, as 3/5 * 10/8 = 3/4.
+
+@lilypond[quote,ragged-right,verbatim,fragment]
+\relative c' { <<
+ \new Staff {
+ \time 3/4
+ c4 c c |
+ c c c |
+ }
+ \new Staff {
+ \time 3/4
+ \set Staff.timeSignatureFraction = #'(9 . 8)
+ \compressMusic #'(2 . 3)
+ \repeat unfold 6 { c8[ c c] }
+ }
+ \new Staff {
+ \time 3/4
+ \set Staff.timeSignatureFraction = #'(10 . 8)
+ \compressMusic #'(3 . 5) {
+ \repeat unfold 2 { c8[ c c] }
+ \repeat unfold 2 { c8[ c] } |
+ c4. c4. \times 2/3 { c8 c c } c4
+ }
+ }
+>> }
+@end lilypond
+
+@strong{Staves with different time signatures, unequal bar lengths}
+
+Each staff can be given its own independent time signature by
+moving the Timing_translator to the Staff context.
@lilypond[quote,verbatim,ragged-right]
\layout {
\consists "Default_bar_line_engraver"
}
}
-%Now, each staff has its own time signature.
+
+% Now each staff has its own time signature.
\relative c' <<
\new Staff {
@end lilypond
-A different form of polymetric notation is where note lengths have
-different values across staves, but the measures are all the same
-length.
-
-This notation can be created by setting a common time signature
-for each staff but replacing it manually using
-@code{timeSignatureFraction} to the desired fraction. Then the
-printed durations in each staff are scaled to the common time
-signature. The latter is done with @code{\compressMusic}, which
-is used in a similar way to @code{\times}, but does not create
-a tuplet bracket. The syntax is
-
-@funindex \compressMusic
-
-@example
-\compressMusic
-#'(@var{numerator} . @var{denominator}) @var{musicexpr}
-@end example
-
+@seealso
+Music Glossary:
+@rglos{polymetric},
+@rglos{polymetric time signature},
+@rglos{meter}.
-In this example, music with the time signatures of 3/4, 9/8, and
-10/8 are used in parallel. In the second staff, shown durations
-are multiplied by 2/3, so that 2/3 * 9/8 = 3/4, and in the third
-staff, shown durations are multiplied by 3/5, so that 3/5 * 10/8 =
-3/4.
+Notation Reference: @ref{Scaling durations}
-@lilypond[quote,ragged-right,verbatim,fragment]
-\relative c' { <<
- \new Staff {
- \time 3/4
- c4 c c | c c c |
- }
- \new Staff {
- \time 3/4
- \set Staff.timeSignatureFraction = #'(9 . 8)
- \compressMusic #'(2 . 3)
- \repeat unfold 6 { c8[ c c] }
- }
- \new Staff {
- \time 3/4
- \set Staff.timeSignatureFraction = #'(10 . 8)
- \compressMusic #'(3 . 5) {
- \repeat unfold 2 { c8[ c c] }
- \repeat unfold 2 { c8[ c] }
- | c4. c4. \times 2/3 { c8 c c } c4
- }
- }
->> }
-@end lilypond
+Snippets:
+@lsrdir{Rhythms,Rhythms}
+@c Is this still permitted?
+@c @lsr{contemporary,compound-time-signature}
+Internals Reference:
+@internalsref{TimeSignature},
+@internalsref{Timing-translator},
+@internalsref{Staff}.
@knownissues
When using different time signatures in parallel, the spacing is
aligned vertically, but bar lines distort the regular spacing.
-@seealso
-
-Snippets: @lsrdir{Rhythms,Rhythms}, @c @lsr{contemporary,compound-time-signature}.
-
-Internals Reference: @internalsref{TimeSignature}, @internalsref{Timing-translator}, @internalsref{Staff}.
-
@node Automatic note splitting
@subsubsection Automatic note splitting
+@cindex notes, splitting
+@cindex splitting notes
+
Long notes which overrun bar lines can be converted automatically
to tied notes. This is done by replacing the
-@internalsref{Note_heads_engraver} by the
-@internalsref{Completion_heads_engraver}. In the following
-examples, notes crossing the bar line are split and tied.
+@code{Note_heads_engraver} by the
+@code{Completion_heads_engraver}. In the following
+example, notes crossing the bar lines are split and tied.
-@lilypond[quote,fragment,verbatim,relative=1,line-width=12\cm]
+@lilypond[quote,fragment,verbatim,relative=1,ragged-right]
\new Voice \with {
\remove "Note_heads_engraver"
\consists "Completion_heads_engraver"
-} {
- c2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2
}
+
+{c2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2}
@end lilypond
This engraver splits all running notes at the bar line, and
inserts ties. One of its uses is to debug complex scores: if the
-measures are not entirely filled, then the ties exactly show how
+measures are not entirely filled, then the ties show exactly how
much each measure is off.
-If you want to allow line breaking on the bar lines where
-@internalsref{Completion_heads_engraver} splits notes, you must
-also remove @internalsref{Forbid_line_break_engraver}.
-
+To allow line breaking on the bar lines where the
+@code{Completion_heads_engraver} has inserted a split note, remove
+the @code{Forbid_line_break_engraver} too.
-@knownissues
-
-Not all durations (especially those containing tuplets) can be
-represented exactly with normal notes and dots, but the engraver
-will not insert tuplets.
-@code{Completion_heads_engraver} only affects notes; it does not
-split rests.
+@seealso
+Music Glossary: @rglos{tie}
-@seealso
+Learning Manual:
+@rlearning{Engravers explained},
+@rlearning{Adding and removing engravers}.
Snippets: @lsrdir{Rhythms,Rhythms}
-Internals Reference: @internalsref{Note_heads_engraver},
+Internals Reference:
+@internalsref{Note_heads_engraver},
@internalsref{Completion_heads_engraver},
@internalsref{Forbid_line_break_engraver}.
+@knownissues
+
+Not all durations (especially those containing tuplets) can be
+represented exactly with normal notes and dots, but the engraver
+will not insert tuplets.
+The @code{Completion_heads_engraver} only affects notes; it does not
+split rests.
@node Beams
The beams of consecutive 16th (or shorter) notes are, by default,
not sub-divided. That is, the three (or more) beams stretch
-unbroken over entire groups of notes. This behaviour can
+unbroken over entire groups of notes. This behavior can
be modified to sub-divide the beams into sub-groups by setting
the property @code{subdivideBeams}. When set, multiple beams
will be sub-divided at intervals defined by the current value of
3/8 and on the fourth beat of the measure (after 3/4, that is 2 times
3/8, has passed within the measure).
-If any unexpected beam behaviour occurs, check the default automatic beam
+If any unexpected beam behavior occurs, check the default automatic beam
settings in @file{scm/@/auto@/-beam@/.scm}
for possible interference, because the beam
endings defined there will still apply on top of your own overrides. Any
draw on the left and right side, respectively, of the next note.
If either property is set, its value will be used only once, and
then it is erased. In this example, the last @code{f} is printed
-with only one beam on the left side, i.e. the eigth-note beam of
+with only one beam on the left side, i.e. the eighth-note beam of
the group as a whole.
@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
@cindex repeats
Although the bar line types signifying repeats may be inserted
-manually they do not in themselves cause LilyPond to recognise
+manually they do not in themselves cause LilyPond to recognize
a repeated section. Such repeated sections are better entered
using the various repeat commands (see @ref{Repeats}), which
automatically print the appropriate bar lines.
Internals Reference: @internalsref{BarLine} (created at
@internalsref{Staff} level), @internalsref{SpanBar} (across
-staves), @internalsref{Timing_translator} (for Timing
+staves), @internalsref{Timing_translator} (for Timing
properties).
@cindex bar numbers, regular spacing
Bar numbers can be typeset at regular intervals instead of just at
-the beginning of every line. To do this the default behaviour
+the beginning of every line. To do this the default behavior
must be overridden to permit bar numbers to be printed at places
other than the start of a line. This is controlled by the
@code{break-visibility} property of @code{BarNumber}. This takes
% Print a bar number every 2nd bar
\set Score.barNumberVisibility = #(every-nth-bar-number-visible 2)
c1 c1
-% Centre-align bar numbers
+% Center-align bar numbers
\override Score.BarNumber #'self-alignment-X = #0
c1 c1
% Right-align bar numbers
Doesn't always convert figured bass correctly, specifically things like {<
>}. Mats' comment on working around this:
To be able to run convert-ly
- on it, I first replaced all occurencies of '{<' to some dummy like '{#'
+ on it, I first replaced all occurrences of '{<' to some dummy like '{#'
and similarly I replaced '>}' with '&}'. After the conversion, I could
then change back from '{ #' to '{ <' and from '& }' to '> }'.
Doesn't convert all text markup correctly. In the old markup syntax,
@cindex reporting bugs
If you have input that results in a crash or an erroneous output, then
-that is a bug. There is a list of current bugs on our google bug tracker,
+that is a bug. There is a list of current bugs on our Google bug tracker,
@uref{http://code.google.com/p/lilypond/issues/list}
We have seen how LilyPond output can be heavily modified using
commands like
@code{\override TextScript #'extra-offset = ( 1 . -1)}. But
-we have even more power if we use Scheme. For a full explantion
+we have even more power if we use Scheme. For a full explanation
of this, see the @ref{Scheme tutorial}, and
@ruser{Interfaces for programmers}.
@node Page breaking
@subsection Page breaking
-The default page breaking may be overriden by inserting
+The default page breaking may be overridden by inserting
@code{\pageBreak} or @code{\noPageBreak} commands. These commands are
analogous to @code{\break} and @code{\noBreak}. They should be
inserted at a bar line. These commands force and forbid a page-break
The @code{ly:minimal-breaking} function performs minimal computations to
calculate the page breaking: it fills a page with as many systems as
-possible before moving to the next one. Thus, it may be prefered for
+possible before moving to the next one. Thus, it may be preferred for
scores with many pages, where the other page breaking functions could be
too slow or memory demanding, or a lot of texts. It is enabled using:
\override NonMusicalPaperColumn #'page-break-permission = ##f
@end example
-When @code{line-break-permission} is overriden to false, Lily will insert
+When @code{line-break-permission} is overridden to false, Lily will insert
line breaks at explicit @code{\break} commands and nowhere else. When
-@code{page-break-permission} is overriden to false, Lily will insert
+@code{page-break-permission} is overridden to false, Lily will insert
page breaks at explicit @code{\pageBreak} commands and nowhere else.
@lilypond[quote,verbatim]
@end example
When only a couple of flat systems are placed on a page, the resulting
-vertical spacing may be non-eleguant: one system at the top of the page,
+vertical spacing may be non-elegant: one system at the top of the page,
and the other at the bottom, with a huge gap between them. To avoid this
situation, the space added between the systems can be limited. This
feature is activated by setting to @code{#t} the
The @code{ragged-bottom} property adds space between systems, while
the two-pass technique adds space between staves inside a system.
-To allow this behaviour, a @code{tweak-key} variable has to be set in
+To allow this behavior, a @code{tweak-key} variable has to be set in
each score @code{\layout} block, and the tweaks included in each score
music, using the @code{\scoreTweak} music function.
TODO: this example doesn't work any more ?
By default, outside-staff objects are placed without regard to
-their horizontal distance from the previously-posititioned grobs. This
+their horizontal distance from the previously-positioned grobs. This
can lead to situations in which objects are placed very close to each
other horizontally. Setting @code{outside-staff-horizontal-padding}
causes an object to be offset vertically so that such a situation
@subsection Horizontal spacing overview
The spacing engine translates differences in durations into stretchable
-distances (@q{springs}) of differring lengths. Longer durations get
+distances (@q{springs}) of differing lengths. Longer durations get
more space, shorter durations get less. The shortest durations get a
fixed amount of space (which is controlled by
@code{shortest-duration-space} in the @internalsref{SpacingSpanner}
equivalent to its rhythmic duration. This type of proportional spacing
is comparable to horizontal spacing on top of graph paper. Some late
20th- and early 21st-century scores use proportional notation to
-clarify complex rhythmic relationships or to faciliate the placement
+clarify complex rhythmic relationships or to facilitate the placement
of timelines or other graphics directly in the score.
LilyPond supports five different settings for proportional notation,
lives in @code{Score}. Recall that context settings appear in one of
three locations in our input file -- in a @code{\with} block, in a
@code{\context} block, or directly in music entry
-preceeded by the @code{\set} command. As with all
+preceded by the @code{\set} command. As with all
context settings, users can pick which of the three different
locations they would like to set @code{proportionalNotationDuration}.
@end lilypond
Nonmusical elements like time signatures, key signatures, clefs and
-accidentals are problemmatic in proportional notation. None of these
+accidentals are problematic in proportional notation. None of these
elements has rhythmic duration. But all of these elements consume
horizontal space. Different proportional scores approach these
problems differently.
@node Page breaks
@subsection Page breaks
-The default page breaking may be overriden by inserting
+The default page breaking may be overridden by inserting
@code{\pageBreak} or @code{\noPageBreak} commands.
These commands are analogous to the @code{\break} and
-@code{\noBreak} commands discused above and force or forbid
+@code{\noBreak} commands discussed above and force or forbid
a page-break at the point where they are inserted.
Of course, the @code{\pageBreak} command also forces a line break.
Like @code{\break}, the @code{\pageBreak} command is effective only
@item
Alter the horizontal spacing via @code{SpacingSpanner}. See
@ruser{Changing horizontal spacing}, for more details. Here's
-an example first showing the default behaviour:
+an example first showing the default behavior:
@lilypond[verbatim,quote,ragged-right]
\score {
line with either a bracket or a brace.
@menu
-* Initiating new staves::
-* Grouping staves::
+* Instantiating new staves::
+* Grouping staves::
+* Deeper nested staff groups::
@end menu
-@node Initiating new staves
-@subsubsection Initiating new staves
+@node Instantiating new staves
+@subsubsection Instantiating new staves
@cindex new staff
@cindex staff initiation
+@cindex staff instantiation
@cindex staff, new
+@cindex staff, single
+@cindex drum staff
+@cindex percussion staff
+@cindex Gregorian transcription staff
+@cindex rhythmic staff
+@cindex tabstaff
+@cindex tablature
-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.
+The lines of a staff (pl. staves) are produced by the @code{staff symbol}
+layout object. Staves are created with the @code{\new} or
+@code{\context} commands. For an explanation on these commands,
+see @ref{Creating contexts}.
-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.
+There are different predefined staff contexts available in Lilypond:
+
+@itemize
+@item
+The default is @code{Staff}:
+@lilypond[verbatim,ragged-right,quote]
+\relative c'' {
+ \new Staff { c d e f }
+}
+@end lilypond
+
+@item
+@code{DrumStaff} creates a five line staff set up for a typical drum set.
+It uses different names for each instrument. The instrument names have to
+be set using the @code{drummode}. See @ref{Percussion staves}.
+@lilypond[verbatim,ragged-right,quote]
+\new DrumStaff {
+ \drummode { cymc hh ss tomh }
+}
+@end lilypond
+
+@item
+@code{GregorianTranscriptionStaff} sets up a staff to notate modern
+Gregorian chant. It does not show bar lines.
+@lilypond[verbatim,ragged-right,quote]
+\relative c'' {
+ \new GregorianTranscriptionStaff { c d e f }
+}
+@end lilypond
+
+@item
+@code{RhythmicStaff} can be used to show the rhythm of some music. The
+notes are printed on one line regardless of their pitch, but the duration
+is preserved. See @ref{Showing melody rhythms}.
+@lilypond[verbatim,ragged-right,quote]
+\relative c'' {
+ \new RhythmicStaff { c d e f }
+}
+@end lilypond
+
+@item
+@code{TabStaff} creates by default a tablature with six strings in
+standard guitar tuning. See @ref{Tablatures basic}.
+@lilypond[verbatim,ragged-right,quote]
+\relative c'' {
+ \new TabStaff { c d e f }
+}
+@end lilypond
+
+@end itemize
+
+@noindent
+Besides these staves there are two staff contexts specific for the notation
+of ancient music: @code{MensuralStaff} and @code{VaticanaStaff}. They are
+described in @ref{Pre-defined contexts}.
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}.
+in the score. This is done with the commands @code{\startStaff} and
+@code{\stopStaff}. How to use it is explained 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},
+Notation Reference: @ref{Percussion staves},
@ref{Tablatures basic}, @ref{Gregorian Chant contexts}, and
@ref{Mensural contexts}.
Snippets: @lsrdir{Staff,Staff-notation}.
-Internals Reference: @internalsref{Staff}.
+Internals Reference: @internalsref{Staff}, @internalsref{DrumStaff},
+@internalsref{GregorianTranscriptionStaff}, @internalsref{RhythmicStaff},
+@internalsref{TabStaff}, @internalsref{MensuralStaff},
+@internalsref{VaticanaStaff}.
@cindex system
LilyPond provides different types of contexts to group single staves
-together. These contexts influence in the first place the appearance
+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.
+behavior of the bar lines.
+
+Each staff group context sets the property
+@code{systemStartDelimiter} to one of the values
+@code{SystemStartBar}, @code{SystemStartBrace},
+and @code{SystemStartBracket}. A fourth delimiter,
+@code{systemStartSquare}, is also available, but must be
+instantiated manually. The usage of this last delimiter is shown further
+down in the snippet section.
@itemize
bar lines are not connected.
@lilypond[verbatim,ragged-right,quote]
-\relative c'' { <<
+\relative c'' <<
\new Staff { c1 c }
\new Staff { c c }
->> }
+>>
@end lilypond
@item
optimized for setting piano music.
@lilypond[verbatim,ragged-right,quote]
-\new PianoStaff
-\relative c'' <<
- \new Staff { c1 c }
- \new Staff { c c }
->>
+\new PianoStaff {
+ \relative c'' <<
+ \new Staff { c1 c }
+ \new Staff { c c }
+ >>
+}
@end lilypond
@end itemize
According to classic engraver rules an orchestral score consists of
-staves connected only with a single line at the beginning of the system.
+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{<< ... >>}.
Each instrument family is grouped inside of a @code{StaffGroup} with a
-starting bracket. A group of same instruments or an instrument using
+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
+@snippets
+
+@c FIXME: not yet in master
+@c @lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+@c {use-square-bracket-at-the-start-of-a-staff-group.ly}
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{display-bracket-with-only-one-staff-in-a-system.ly}
+
+@cindex mensurstriche layout
+@cindex renaissance music
+@cindex transcription of mensural music
+@cindex mensural music, transcription of
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{mensurstriche-layout-bar-lines-between-the-staves.ly}
+
+
+@seealso
+
+Music Glossary: @rglos{brace},
+@rglos{bracket}.
+
+Snippets: @lsrdir{Staff,Staff-notation}
+
+Internals Reference: @internalsref{ChoirStaff},
+@internalsref{GrandStaff}, @internalsref{StaffGroup},
+@internalsref{SystemStartBar}, @internalsref{SystemStartBrace},
+@internalsref{SystemStartBracket}, and @internalsref{systemStartSquare}.
+
+
+@node Deeper nested staff groups
+@subsubsection Deeper nested staff groups
+
+There are also two inner staff contexts named @code{InnerStaffGroup}
+and @code{InnerChoirStaffGroup} besides the grouping contexts mentioned
+in @ref{Grouping staves}. They behave in the same way as their simple
+counterparts, except that they are contained in another staff grouping
+context, thus producing one more bracket on top of the existing one.
+Note that @code{GrandStaff} and @code{PianoStaff} do not have any inner
+grouping contexts. They can both be inside any other staff context,
+including inner staff groups, though.
+
+Here is an example of an orchestral score using groupings and nesting
+of these groupings. Note that the instrument names are omitted from the
+source code, see @ref{Instrument names} how to set them.
+
+@cindex staff, nested
+@cindex staves, nested
+@cindex nesting of staves
+@cindex system start delimiters, nested
+@cindex nested staff brackets
+@cindex brackets, nesting of
+@cindex braces, nesting of
+@cindex inner staff group
+@cindex inner choir staff group
+
+
+@example
+\score @{ <<
+ \new StaffGroup %woodwinds
<<
- \new Staff { c1 c }
- \new Staff { c c }
- \new Staff { c c }
+ \new Staff @{ c'1 d' @} %flute
+ \new InnerStaffGroup <<
+ \new Staff @{ c' d' @} %sax
+ \new Staff @{ c' d' @} %oboe
+ \new Staff @{ c' d' @} %English horn
+ >>
+ \new Staff @{ \clef bass c d @} %bassoon
>>
\new StaffGroup %the brass group
<<
- \new Staff { c c }
- \new Staff { c c }
+ \new Staff @{ c' d' @} %trumpet
+ \new Staff @{ \clef bass c d @} %trombone
\new GrandStaff %the horns need a GrandStaff (same instrument)
<<
- \new Staff { c c }
- \new Staff {\clef bass c c }
+ \new Staff @{ c' d' @}
+ \new Staff @{ \clef bass c d @}
>>
>>
- \new ChoirStaff %for a vocal part
+ \new ChoirStaff %for setting vocal music
<<
- \new Staff { c c }
- \new Staff {\clef alto c c }
- \new Staff {\clef bass c c }
+ \new Staff @{ c' d' @}
+ \new InnerChoirStaff <<
+ \new Staff @{ c' d' @}
+ \new Staff @{ c' d' @}
+ >>
+ \new Staff @{ c' d' @}
>>
\new PianoStaff %for the piano
<<
- \new Staff { c c }
- \new Staff {\clef bass c c }
+ \new Staff @{ c' d' @}
+ \new Staff @{\clef bass c d @}
>>
->>
-} }
-@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
-
-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.
+>> @}
+@end example
-@c snippet staff-brackets.ly
-@lilypond[verbatim,ragged-right,quote]
-\score {
-<<
- \new StaffGroup <<
- \new Staff {c' d' e' f'}
+@c no verbatim so instrument names are only in the music
+@lilypond[ragged-right,quote]
+\score { <<
+ \new StaffGroup %woodwinds
+ <<
+ \new Staff {\set Staff.instrumentName = "fl" c'1 d' } %flute
\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 Staff { \set Staff.instrumentName = "sax" c' d' } %sax 1
+ \new Staff { \set Staff.instrumentName = "ob" c' d' } %sax 2
+ \new Staff { \set Staff.instrumentName = "ca" c' d' }
+ >>
+ \new Staff {\set Staff.instrumentName = "bs" \clef bass c d } %bassoon
>>
- \new ChoirStaff <<
- \new Staff {c' d' e' f'}
- \new InnerStaffGroup <<
- \new Staff {c' d' e' f'}
+ \new StaffGroup %the brass group
+ <<
+ \new Staff {\set Staff.instrumentName = "tr" c' d' } %trumpet
+ \new Staff {\set Staff.instrumentName = "tb" \clef bass c d } %trombone
+ \new GrandStaff %the horns need a GrandStaff (same instrument)
+ <<
+ \new Staff {\set Staff.instrumentName = "cor1" c' d' }
+ \new Staff {\set Staff.instrumentName = "cor2" \clef bass c d }
>>
- \new Staff {c' d' e' f'}
>>
+ \new ChoirStaff %for setting vocal music
+ <<
+ \new Staff {\set Staff.instrumentName = "S" c' d' }
+ \new InnerChoirStaff <<
+ \new Staff {\set Staff.instrumentName = "A1" c' d' }
+ \new Staff {\set Staff.instrumentName = "A2" c' d' }
+ >>
+ \new Staff {\set Staff.instrumentName = "T" c' d' }
>>
- \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'}
+ \new PianoStaff %for the piano
+ <<
+ \new Staff { c' d' }
+ \new Staff {\clef bass c d }
>>
>> }
@end lilypond
@snippets
-@c FIXME: not yet in master
-@c @lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
-@c {nesting-staves.ly}
-
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
+{nesting-staves.ly}
-More complex nesting can be accomplished using the property
-@code{systemStartDelimiterHierarchy}:
-
-@lilypond[quote,ragged-right,verbatim]
-\new StaffGroup
-\relative <<
- \set StaffGroup.systemStartDelimiterHierarchy
- = #'(SystemStartSquare (SystemStartBracket a
- (SystemStartSquare b)) d)
- \new Staff { c1 }
- \new Staff { c1 }
- \new Staff { c1 }
- \new Staff { c1 }
- \new Staff { c1 }
->>
-@end lilypond
-
-Each staff group context sets the property
-@code{systemStartDelimiter} to one of the values
-@internalsref{SystemStartBar}, @internalsref{SystemStartBrace},
-and @internalsref{SystemStartBracket}. A fourth delimiter,
-@code{systemStartSquare}, is also available, but must be
-instantiated manually
-
-
-
-@cindex mensurstriche layout
-@cindex renaissance music
-@cindex transcription of mensural music
-@cindex mensural music, transcription of
-
-
-@c FIXME: not yet in master
-@c @lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
-@c {mensurstriche-layout.ly}
-
-Other groupings may be achieved by changing various properties.
-E.g., the
-@q{Mensurstriche} layout common in Renaissance music, with
-bar lines running between but not through the staves, can be
-produced from a @code{StaffGroup} or @code{GrandStaff} context if
-the bar lines are made transparent in the @code{Staff} itself:
-
-@lilypond[verbatim,ragged-right,quote]
-global = {\override Staff.BarLine #'transparent = ##t
- s1 s
- %the final bar line is not interupted
- \once \override Staff.BarLine #'transparent = ##f
- \bar "|."}
-\new StaffGroup
-\relative c'' <<
- \new Staff {<< \global { c1 c } >>}
- \new Staff {<< \global { c c } >>}
->>
-@end lilypond
-
-
-
-@c FIXME: Graham will deal with this. -gp
-@c snippet 201
-To display a bracket even if there is only one staff, see
-@c @lilypondfile[verbatim,lilyquote,ragged-right,texidoc]
-@c {staff,display-bracket-with-only-one-staff-in-a system.ly}
@seealso
-Music Glossary: @rglos{brace},
-@rglos{bracket}.
-
-Snippets: @lsrdir{Staff,Staff-notation}
-
-Internals Reference: @internalsref{ChoirStaff},
-@internalsref{GrandStaff}, @internalsref{PianoStaff},
-@internalsref{StaffGroup},
-@internalsref{SystemStartBar}, @internalsref{SystemStartBrace},
-@internalsref{SystemStartBracket}, @internalsref{SystemStartSquare}.
+Internals Reference: @internalsref{SystemStartBar},
+@internalsref{SystemStartBrace}, @internalsref{SystemStartBracket},
+@internalsref{systemStartDelimiterHierarchy}.
@subsection Modifying single staves
@menu
-* Staff symbol::
-* Ossia staves::
-* Hiding staves::
+* Staff symbol::
+* Ossia staves::
+* Hiding staves::
@end menu
@node Staff symbol
@subsubsection Staff symbol
@cindex adjusting staff symbol
+@cindex drawing staff symbol
+@cindex stop staff lines
+@cindex start staff lines
+@cindex staff lines, amount of
+@cindex staff line, thickness of
+@cindex amount of staff lines
+@cindex thickness of staff lines
The layout object which draws the lines of a staff is called
@code{staff symbol}. The staff symbol may be tuned in the number,
@cindex thickness of staff lines, setting
@cindex number of staff lines, setting
+@snippets
+
+@c lilypondfile{Making-some-staff-lines-thicker-than-the-others.ly}
+@c snippet 277
+
@seealso
Music Glossary: @rglos{ossia}, @rglos{staff}, @rglos{Frenched staff}.
already set up for you. Just add notes, run LilyPond, and enjoy
beautiful printed scores!
-@c bad node name for ancient notation to avoid confict
+@c bad node name for ancient notation to avoid conflict
@menu
* Single staff::
* Piano templates::
{vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly}
-@c bad node name to avoid node name confict
+@c bad node name to avoid node name conflict
@node Ancient notation templates
@appendixsec Ancient notation templates
Time signatures entered in one staff affects all other staves by
default. On the other hand, the key signature of one staff does
-@emph{not} affect other staves. This different default behaviour
+@emph{not} affect other staves. This different default behavior
is because scores with transposing instruments are more common
than polyrhythmic scores.
above, and so they too all have properties associated with them,
such as their position, size, color, etc.
-Some layout objects are still more specialised. Phrasing slurs,
-crescendo hairpins, ottavo marks, and many other grobs are not
-localised in a single place -- they have a starting point, an
+Some layout objects are still more specialized. Phrasing slurs,
+crescendo hairpins, ottava marks, and many other grobs are not
+localized in a single place -- they have a starting point, an
ending point, and maybe other properties concerned with their
shape. Objects with an extended shape like these are called
@q{Spanners}.
@ref{Contexts and engravers}. Here for reference is a list
of the most common object and property types together with
the conventions for naming them and a couple of examples of
-some real names. We have used A to stand for any capitalised
+some real names. We have used A to stand for any capitalized
alphabetic character and aaa to stand for any number of
lower-case alphabetic characters. Other characters are used
verbatim.
As we shall see shortly, the properties of different types of
object are modified by different commands, so it is useful to
-be able to recognise the type of object from the names of its
+be able to recognize the type of object from the names of its
properties.
including @code{font-shape(symbol)}, where @code{symbol} can be
set to @code{upright}, @code{italics} or @code{caps}.
-You will notice that that @code{font-series} and @code{font-size}
+You will notice that @code{font-series} and @code{font-size}
are also listed there.
This immediately raises the question: Why are the common font
properties @code{font-series} and @code{font-size} listed under
@code{LyricText} then tell you the values for those two
properties which apply to @code{LyricText}. Other objects
which support @code{font-interface} will set these
-properties diferently when they are created.
+properties differently when they are created.
Let's see if we can now construct the @code{\override} command
to change the lyrics to italics. The object is @code{LyricText},
LilyPond. Some of them are the names of properties,
like @code{thickness} or @code{font-shape}, others are in
effect special values that can be given to properties, like
-@code{italic}. Note the distinction from arbitary
+@code{italic}. Note the distinction from arbitrary
text strings, which would appear as @code{"a text string"}.
Ok, so the @code{\override} command we need to print the lyrics
spaces must be inserted before and after the
period or dot, @q{.}, separating the context name from the
object name, as otherwise the two names are run together and
-the interpreter cannot recognise them. So the command should be:
+the interpreter cannot recognize them. So the command should be:
@example
\override Lyrics . LyricText #'font-shape = #'italic
requires is actually a list of values in internal units,
but, to avoid having to know what these are, several ways
are provided to specify colors. The first way is to use one
-of the @q{normal} colours listed in the first table in
+of the @q{normal} colors listed in the first table in
@ruser{List of colors}. To set the bar lines to white
we write:
@noindent
where the extra pair of braces after the @code{\with} clause are
-required to ensure the enclosed overrrides and music are applied
+required to ensure the enclosed overrides and music are applied
to the ossia staff.
But what is the difference between modifying the staff context by
context is created, and remain in force as the @strong{default}
values for the duration of that context, whereas
@code{\set} or @code{\override} commands embedded in the
-music are dynamic -- they make changes synchronised with
+music are dynamic -- they make changes synchronized with
a particular point in the music. If changes are unset or
reverted using @code{\unset} or @code{\revert} they return to
their default values, which will be the ones set in the
value of the @code{staff-space} property these are automatically
scaled down in length too. Note that this affects only the
vertical scale of the ossia -- the horizontal scale is determined
-by the layout of the main music in order to remain synchronised
+by the layout of the main music in order to remain synchronized
with it, so it is not affected by any of these changes in size.
Of course, if the scale of all the main music were changed in this
way then the horizontal spacing would be affected. This is
@section Placement of objects
@menu
-* Automatic behaviour::
+* Automatic behavior::
* Within-staff objects::
* Outside staff objects::
@end menu
-@node Automatic behaviour
-@subsection Automatic behaviour
+@node Automatic behavior
+@subsection Automatic behavior
There are some objects in musical notation that belong to
the staff and there are other objects that should be
tied to other objects that are so positioned. Collisions of
note heads, stems and accidentals in closely set chords are
normally avoided automatically. There are commands and
-overrides which can modify this automatic behaviour, as we
+overrides which can modify this automatic behavior, as we
shall shortly see.
Objects belonging outside the staff include things such as
placed closer to the staff.
In the following example all the markup texts have the same
-priority (since it is not explicity set). Note that @q{Text3}
+priority (since it is not explicitly set). Note that @q{Text3}
is automatically positioned close to the staff again, nestling
under @q{Text2}.
These commands are essential when writing polyphonic music to
permit interweaving melodic lines to be distinguished.
But occasionally it may be necessary to override this automatic
-behaviour. This can be done for whole sections of music or even
+behavior. This can be done for whole sections of music or even
for an individual note. The property which controls this
-behaviour is the @code{direction} property of each layout object.
+behavior is the @code{direction} property of each layout object.
We first explain what this does, and then introduce a number of
ready-made commands which avoid your having to code explicit
overrides for the more common modifications.
right or left when they point up or down. This is controlled
automatically when @code{direction} is set.
-The following example shows in bar 1 the default behaviour of
+The following example shows in bar 1 the default behavior of
stems,
with those on high notes pointing down and those on low notes
pointing up, followed by four notes with all stems forced down,
four notes with all stems forced up, and finally four notes
-reverted back to the default behaviour.
+reverted back to the default behavior.
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
a4 g c a
to the left (if @code{left} appears, or to the right
(if @code{right} appears). Conversely, if a location is not
listed, no fingering is placed there. LilyPond takes these
-contraints and works out the best placement for the fingering
+constraints and works out the best placement for the fingering
of the notes of the following chords. Note that @code{left} and
@code{right} are mutually exclusive -- fingering may be placed
only on one side or the other, not both.
control the vertical placement of individual objects, although
the results may not always be desirable. Suppose we would
like @qq{Text3} to be placed above @qq{Text4} in the example
-under Automatic behaviour, above (see @ref{Automatic behaviour}).
+under Automatic behavior, above (see @ref{Automatic behavior}).
All we need to do is to look up the priority of @code{TextScript}
in the IR or in the tables above, and increase the priority of
@qq{Text3} to a higher value:
By default, text produced by markup takes up no horizontal space
as far as laying out the music is concerned. The @code{\textLengthOn}
-command reverses this behaviour, causing the notes to be spaced
+command reverses this behavior, causing the notes to be spaced
out as far as is necessary to accommodate the text:
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
c^"Text4"
@end lilypond
-The command to revert to the default behaviour is
+The command to revert to the default behavior is
@code{\textLengthOff}. Remember @code{\once} only works with
@code{\override}, @code{\set}, @code{\revert} or @code{unset},
so cannot be used with @code{\textLengthOn}.
% Turn off collision avoidance
\once \override TextScript #'outside-staff-priority = ##f
\textLengthOn % and turn on textLengthOn
-c,,2^"Long Text " % Spaces at end are honoured
+c,,2^"Long Text " % Spaces at end are honored
c''2
@end lilypond
aesthetic reasons -- they would look better with a little more
or a little less space around them.
-There are three main main approaches to resolving overlapping
+There are three main approaches to resolving overlapping
notation. They should be considered in the following order:
@enumerate
to the leftmost extent and the second is added to the rightmost
extent. Negative numbers move the edge to the left, positive to
the right, so to widen an object the first number must be negative,
-the second positive. Note that not all objects honour both
+the second positive. Note that not all objects honor both
numbers. For example, the @code{Accidental} object only takes
notice of the first (left edge) number.
@cindex force-hshift property
-Closely spaced notes in a chord, or notes occuring at the same
+Closely spaced notes in a chord, or notes occurring at the same
time in different voices, are arranged in two, occasionally more,
columns to prevent the note heads overlapping. These are called
note columns, and an object called @code{NoteColumn} is created
@item
Finally, when all else fails, objects may be manually repositioned
-relative to the staff center line verically, or by
+relative to the staff center line vertically, or by
displacing them by any distance to a new position. The
disadvantages are that the correct values for the repositioning
have to be worked out, often by trial and error, for every object
engraving process, so please do not let these difficulties put
you off! Fortunately, difficulties like these are not very common!
-The example is from Chopin's Première Ballade, Op. 23, bars 6 to
+The example is from Chopin's Première Ballade, Op. 23, bars 6 to
9, the transition from the opening Lento to Moderato.
Here, first, is what we want the output to look like, but to avoid
over-complicating the example too much we have left out the
The C is in voice two which has shift off, and the two D's are in
voices one and three, which have shift off and shift on,
respectively. So we have to shift the C a further level still
-using @code{\shiftOnn} to avoid it interferring with the two D's.
+using @code{\shiftOnn} to avoid it interfering with the two D's.
Applying these changes gives:
@lilypond[quote,verbatim,ragged-right]
will be centered between the syllables, and its length will be adjusted
depending on the space between the syllables.
-In tighly engraved music, hyphens can be removed. Whether this
+In tightly engraved music, hyphens can be removed. Whether this
happens can be controlled with the @code{minimum-distance} (minimum
distance between two syllables) and the @code{minimum-length}
(threshold below which hyphens are removed).
@subsubsection Adding dynamics marks
Stanzas differing in loudness may be indicated by putting a
-dynamics mark before each stanza. In Lilypond, everthing coming in
+dynamics mark before each stanza. In Lilypond, everything coming in
front of a stanza goes into the @code{StanzaNumber} object; dynamics marks
are no different. For technical reasons, you have to set the stanza
outside @code{\lyricmode}:
The LilyPond input syntax occasionally changes. As LilyPond itself
improves, the syntax (input language) is modified accordingly. Sometimes
these changes are made to make the input easier to read and write or
-sometimes the changes are made to accomodate new features of LilyPond.
+sometimes the changes are made to accommodate new features of LilyPond.
LilyPond comes with a file that makes this updating easier:
@code{convert-ly}. For details about how to run this program, see
@itemize
@item Bug reports
-@item Sending a help request to mailists
+@item Sending a help request to mailing lists
@item Adding an example to the @uref{http://lsr.dsi.unimi.it/,
LilyPond Snippet Repository}
@end itemize
pages_dict = {}
def build_pages_dict (filelist):
- """Build dictionnary of available translations of each page"""
+ """Build dictionary of available translations of each page"""
global pages_dict
for f in filelist:
m = html_re.match (f)
+++ /dev/null
-#!/usr/bin/env python
-
-notes = "CDEFGAB"
-alterations = [-1, 0, 1]
-
-def print_note (octave, note, alteration):
- print " <note>\n <pitch>\n <step>%s</step>" % notes[note]
- if alteration <> 0:
- print " <alter>%s</alter>" % alteration
- print " <octave>%s</octave>\n </pitch>\n <duration>1</duration>\n <voice>1</voice>\n <type>quarter</type>\n </note>" % octave
-
-
-print """<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
- "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
- <movement-title>Various piches and interval sizes</movement-title>
- <part-list>
- <score-part id="P1">
- <part-name>MusicXML Part</part-name>
- </score-part>
- </part-list>
- <!--=========================================================-->
- <part id="P1">
- <measure number="1">
- <attributes>
- <divisions>1</divisions>
- <key>
- <fifths>0</fifths>
- <mode>major</mode>
- </key>
- <time symbol="common">
- <beats>2</beats>
- <beat-type>4</beat-type>
- </time>
- <clef>
- <sign>G</sign>
- <line>2</line>
- </clef>
- </attributes>
-"""
-
-start_octave = 5
-
-for octave in (start_octave, start_octave+1):
- for note in (0,1,2,3,4,5,6):
- for alteration in alterations:
- if octave == start_octave and note == 0 and alteration == -1:
- continue
- print_note (octave, note, alteration)
-# if octave == start_octave and note == 0 and alteration == 0:
-# continue
- print_note (start_octave-(octave-start_octave)-(1-(7-note)/7), (7-note)%7, -alteration)
-
-print """ </measure>
- </part>
-</score-partwise>
-"""
\ No newline at end of file
+++ /dev/null
-#!/usr/bin/env python
-
-notes = "CDEFGAB"
-alterations = [-1, 0, 1]
-
-def print_measure (nr, fifth, mode, atts = "", final = ""):
- print """ <measure number="%s">
- <attributes>
-%s <key>
- <fifths>%s</fifths>
- <mode>%s</mode>
- </key>
- </attributes>
- <note>
- <pitch>
- <step>C</step>
- <octave>4</octave>
- </pitch>
- <duration>2</duration>
- <voice>1</voice>
- <type>half</type>
- </note>
-%s </measure>""" % (nr, atts, fifth, mode, final)
-
-first_atts = """ <divisions>1</divisions>
- <time symbol="common">
- <beats>2</beats>
- <beat-type>4</beat-type>
- </time>
- <clef>
- <sign>G</sign>
- <line>2</line>
- </clef>
-"""
-
-final_barline = """ <barline location="right">
- <bar-style>light-heavy</bar-style>
- </barline>
-"""
-
-print """<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
- "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
- <movement-title>Different Key signatures</movement-title>
- <part-list>
- <score-part id="P1">
- <part-name>MusicXML Part</part-name>
- </score-part>
- </part-list>
- <!--=========================================================-->
- <part id="P1">
-"""
-
-max_range = 11
-measure = 0
-for fifth in range(-max_range, max_range+1):
- measure += 1
- if fifth == -max_range:
- print_measure (measure, fifth, "major", first_atts)
- else:
- print_measure (measure, fifth, "major")
- measure += 1
- if fifth == max_range:
- print_measure (measure, fifth, "minor", "", final_barline)
- else:
- print_measure (measure, fifth, "minor")
-
-
-print """ </part>
-</score-partwise>
-"""
\ No newline at end of file
+++ /dev/null
-#!/usr/bin/env python
-
-notes = "CDEFGAB"
-alterations = [-1, 0, 1]
-
-def print_measure (nr, beats, type, params = "", attr = "", barline = ""):
- print """ <measure number="%s">
- <attributes>
-%s <time %s>
- <beats>%s</beats>
- <beat-type>%s</beat-type>
- </time>
- </attributes>
- <note>
- <pitch>
- <step>C</step>
- <octave>5</octave>
- </pitch>
- <duration>1</duration>
- <voice>1</voice>
- <type>quarter</type>
- </note>
-%s </measure>""" % (nr, attr, params, beats, type, barline)
-
-first_atts = """ <divisions>1</divisions>
- <key>
- <fifths>0</fifths>
- <mode>major</mode>
- </key>
- <time symbol="common">
- <beats>2</beats>
- <beat-type>4</beat-type>
- </time>
- <clef>
- <sign>G</sign>
- <line>2</line>
- </clef>
-"""
-
-final_barline = """ <barline location="right">
- <bar-style>light-heavy</bar-style>
- </barline>
-"""
-
-print """<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
- "http://www.musicxml.org/dtds/partwise.dtd">
-<score-partwise>
- <movement-title>Different time signatures</movement-title>
- <part-list>
- <score-part id="P1">
- <part-name>MusicXML Part</part-name>
- </score-part>
- </part-list>
- <!--=========================================================-->
- <part id="P1">
-"""
-
-measure = 1
-
-print_measure (measure, 2, 2, " symbol=\"common\"", first_atts)
-measure += 1
-
-print_measure (measure, 4, 4, " symbol=\"common\"")
-measure += 1
-
-print_measure (measure, 2, 2)
-measure += 1
-
-print_measure (measure, 3, 2)
-measure += 1
-
-print_measure (measure, 2, 4)
-measure += 1
-
-print_measure (measure, 3, 4)
-measure += 1
-
-print_measure (measure, 4, 4)
-measure += 1
-
-print_measure (measure, 5, 4)
-measure += 1
-
-print_measure (measure, 3, 8)
-measure += 1
-
-print_measure (measure, 6, 8)
-measure += 1
-
-print_measure (measure, 12, 8, "", "", final_barline)
-measure += 1
-
-print """ </part>
-</score-partwise>
-"""
\ No newline at end of file
--- /dev/null
+#!/usr/bin/env python
+
+notes = "CDEFGAB"
+alterations = [-1, 0, 1]
+
+def print_note (octave, note, alteration):
+ print " <note>\n <pitch>\n <step>%s</step>" % notes[note]
+ if alteration <> 0:
+ print " <alter>%s</alter>" % alteration
+ print " <octave>%s</octave>\n </pitch>\n <duration>1</duration>\n <voice>1</voice>\n <type>quarter</type>\n </note>" % octave
+
+
+print """<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+ "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+ <movement-title>Various piches and interval sizes</movement-title>
+ <part-list>
+ <score-part id="P1">
+ <part-name>MusicXML Part</part-name>
+ </score-part>
+ </part-list>
+ <!--=========================================================-->
+ <part id="P1">
+ <measure number="1">
+ <attributes>
+ <divisions>1</divisions>
+ <key>
+ <fifths>0</fifths>
+ <mode>major</mode>
+ </key>
+ <time symbol="common">
+ <beats>2</beats>
+ <beat-type>4</beat-type>
+ </time>
+ <clef>
+ <sign>G</sign>
+ <line>2</line>
+ </clef>
+ </attributes>
+"""
+
+start_octave = 5
+
+for octave in (start_octave, start_octave+1):
+ for note in (0,1,2,3,4,5,6):
+ for alteration in alterations:
+ if octave == start_octave and note == 0 and alteration == -1:
+ continue
+ print_note (octave, note, alteration)
+# if octave == start_octave and note == 0 and alteration == 0:
+# continue
+ print_note (start_octave-(octave-start_octave)-(1-(7-note)/7), (7-note)%7, -alteration)
+
+print """ </measure>
+ </part>
+</score-partwise>
+"""
\ No newline at end of file
--- /dev/null
+#!/usr/bin/env python
+
+notes = "CDEFGAB"
+alterations = [-1, 0, 1]
+
+def print_measure (nr, fifth, mode, atts = "", final = ""):
+ print """ <measure number="%s">
+ <attributes>
+%s <key>
+ <fifths>%s</fifths>
+ <mode>%s</mode>
+ </key>
+ </attributes>
+ <note>
+ <pitch>
+ <step>C</step>
+ <octave>4</octave>
+ </pitch>
+ <duration>2</duration>
+ <voice>1</voice>
+ <type>half</type>
+ </note>
+%s </measure>""" % (nr, atts, fifth, mode, final)
+
+first_atts = """ <divisions>1</divisions>
+ <time symbol="common">
+ <beats>2</beats>
+ <beat-type>4</beat-type>
+ </time>
+ <clef>
+ <sign>G</sign>
+ <line>2</line>
+ </clef>
+"""
+
+final_barline = """ <barline location="right">
+ <bar-style>light-heavy</bar-style>
+ </barline>
+"""
+
+print """<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+ "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+ <movement-title>Different Key signatures</movement-title>
+ <part-list>
+ <score-part id="P1">
+ <part-name>MusicXML Part</part-name>
+ </score-part>
+ </part-list>
+ <!--=========================================================-->
+ <part id="P1">
+"""
+
+max_range = 11
+measure = 0
+for fifth in range(-max_range, max_range+1):
+ measure += 1
+ if fifth == -max_range:
+ print_measure (measure, fifth, "major", first_atts)
+ else:
+ print_measure (measure, fifth, "major")
+ measure += 1
+ if fifth == max_range:
+ print_measure (measure, fifth, "minor", "", final_barline)
+ else:
+ print_measure (measure, fifth, "minor")
+
+
+print """ </part>
+</score-partwise>
+"""
\ No newline at end of file
--- /dev/null
+#!/usr/bin/env python
+
+notes = "CDEFGAB"
+alterations = [-1, 0, 1]
+
+def print_measure (nr, beats, type, params = "", attr = "", barline = ""):
+ print """ <measure number="%s">
+ <attributes>
+%s <time %s>
+ <beats>%s</beats>
+ <beat-type>%s</beat-type>
+ </time>
+ </attributes>
+ <note>
+ <pitch>
+ <step>C</step>
+ <octave>5</octave>
+ </pitch>
+ <duration>1</duration>
+ <voice>1</voice>
+ <type>quarter</type>
+ </note>
+%s </measure>""" % (nr, attr, params, beats, type, barline)
+
+first_atts = """ <divisions>1</divisions>
+ <key>
+ <fifths>0</fifths>
+ <mode>major</mode>
+ </key>
+ <time symbol="common">
+ <beats>2</beats>
+ <beat-type>4</beat-type>
+ </time>
+ <clef>
+ <sign>G</sign>
+ <line>2</line>
+ </clef>
+"""
+
+final_barline = """ <barline location="right">
+ <bar-style>light-heavy</bar-style>
+ </barline>
+"""
+
+print """<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 1.0 Partwise//EN"
+ "http://www.musicxml.org/dtds/partwise.dtd">
+<score-partwise>
+ <movement-title>Different time signatures</movement-title>
+ <part-list>
+ <score-part id="P1">
+ <part-name>MusicXML Part</part-name>
+ </score-part>
+ </part-list>
+ <!--=========================================================-->
+ <part id="P1">
+"""
+
+measure = 1
+
+print_measure (measure, 2, 2, " symbol=\"common\"", first_atts)
+measure += 1
+
+print_measure (measure, 4, 4, " symbol=\"common\"")
+measure += 1
+
+print_measure (measure, 2, 2)
+measure += 1
+
+print_measure (measure, 3, 2)
+measure += 1
+
+print_measure (measure, 2, 4)
+measure += 1
+
+print_measure (measure, 3, 4)
+measure += 1
+
+print_measure (measure, 4, 4)
+measure += 1
+
+print_measure (measure, 5, 4)
+measure += 1
+
+print_measure (measure, 3, 8)
+measure += 1
+
+print_measure (measure, 6, 8)
+measure += 1
+
+print_measure (measure, 12, 8, "", "", final_barline)
+measure += 1
+
+print """ </part>
+</score-partwise>
+"""
\ No newline at end of file
#include <cstdio>
#include <cerrno>
#include <unistd.h>
+#include <limits.h>
using namespace std;
#define RATIONAL_HH
#include "std-string.hh"
+#include <limits.h>
/**
Rational numbers. Included is support for + and - infinity.
#include <algorithm> /* find, reverse, sort */
#include <functional> /* unary_function */
#include <cassert>
+#include <string>
using namespace std;
attach an extra symbol to the drum, and restrict the number of lines.
" }
% begin verbatim
-drh = \drummode { cymc4.^"crash" hhc16^"h.h." hh \repeat unfold 5 { hhc8 hho hhc8 hh16 hh } hhc4 r4 r2 }
-drl = \drummode { \repeat unfold 3 { bd4 sn8 bd bd4 << bd ss >> } bd8 tommh tommh bd toml toml bd tomfh16 tomfh }
-timb = \drummode { \repeat unfold 2 { timh4 ssh timl8 ssh r timh r4 ssh8 timl r4 cb8 cb } }
+drh = \drummode { cymc4.^"crash" hhc16^"h.h." hh hhc8 hho hhc8 hh16 hh hhc4 r4 r2 }
+drl = \drummode { bd4 sn8 bd bd4 << bd ss >> bd8 tommh tommh bd toml toml bd tomfh16 tomfh }
+timb = \drummode { timh4 ssh timl8 ssh r timh r4 ssh8 timl r4 cb8 cb }
\score {
- \repeat volta 2 {
- <<
- \new DrumStaff \with {
- drumStyleTable = #timbales-style
- \override StaffSymbol #'line-count = #2
- \override BarLine #'bar-size = #2
- } <<
- \set Staff.instrumentName = "timbales"
- \timb
- >>
- \new DrumStaff <<
- \set Staff.instrumentName = "drums"
- \new DrumVoice { \stemUp \drh }
- \new DrumVoice { \stemDown \drl }
- >>
+ <<
+ \new DrumStaff \with {
+ drumStyleTable = #timbales-style
+ \override StaffSymbol #'line-count = #2
+ \override BarLine #'bar-size = #2
+ } <<
+ \set Staff.instrumentName = "timbales"
+ \timb
>>
- }
+ \new DrumStaff <<
+ \set Staff.instrumentName = "drums"
+ \new DrumVoice { \stemUp \drh }
+ \new DrumVoice { \stemDown \drl }
+ >>
+ >>
\layout {}
\midi {
\context {
\header {
lsrtags = "repeats"
texidoc = "
-The @code{Volta_engraver} by default resides in the Score context, and
-brackets for the repeat are thus normally only printed over the topmost
-staff. This can be adjusted by adding @code{Volta_engraver} to the
-Staff context where you want the brackets to appear; see also the
-\"Volta multi staff\" snippet.
+The @code{Volta_engraver} by default resides in the @code{Score}
+context, and brackets for the repeat are thus normally only printed
+over the topmost staff. This can be adjusted by adding the
+@code{Volta_engraver} to the @code{Staff} context where you want the
+brackets to appear; see also the \"Volta multi staff\" snippet.
" }
% begin verbatim
<<
lsrtags = "text, vocal-music"
texidoc = "
You can specify different horizontal alignment for your lyrics, by
-overriding the #'self-alignment-X property of the LyricText object. #-1
-is left, #0 is center and #1 is right; however, you can use #LEFT,
-#CENTER and #RIGHT as well.
+overriding the @code{#'self-alignment-X} property of the
+@code{LyricText} object. @code{#-1} is left, @code{#0} is center and
+@code{#1} is right; however, you can use @code{#LEFT}, @code{#CENTER}
+and @code{#RIGHT} as well.
" }
% begin verbatim
\relative c'' {
}
<<
\new Voice \relative c'' {
- \voiceOne
- c4 a d e f1
- }
+ \voiceOne
+ c4 a d e f1
+ }
\new Voice \relative c' {
- \voiceTwo
- es4 f g as b1
- }
+ \voiceTwo
+ es4 f g as b1
+ }
>>
ancient-fonts.ly
ancient-time-signatures.ly
custodes.ly
+mensurstriche-layout-bar-lines-between-the-staves.ly
ancient-notation-template----modern-transcription-of-gregorian-music.ly
rest-styles.ly
\header {
lsrtags = "rhythms"
texidoc = "
-In time signature 2/2 or 4/4 the beam are @code{ _____
- _ _ Default | | | | I want | | | |. } Use a \"macro\" with
-#(override-auto-beam-setting '.....
-
-
-
+In a simple time signature of 2/2 or 4/4, 8th notes are beamed by
+default as two sets of four. Using a macro which overrides the
+autobeaming behaviour, this snippet changes the beaming to quarter note
+beats.
" }
% begin verbatim
% Automatic beams two per two in 4/4 or 2/2 time signature
-% _____
+% _____
% Default | | | |
-% _ _
+% _ _
% I want | | | |
-% The good way adapted from David Bobrof
+% The good way adapted from David Bobroff
% macro for beamed two per two in 2/2 and 4/4 time signature
-qbeam={
- #(override-auto-beam-setting '(end 1 8 * *) 1 4 'Staff)
- #(override-auto-beam-setting '(end 1 8 * *) 2 4 'Staff)
- #(override-auto-beam-setting '(end 1 8 * *) 3 4 'Staff)
- }
-% other macros
-timeFractionstyle = { \override Staff.TimeSignature #'style = #'() }
-textn = ^\markup { without the macro }
-texty = ^\markup { with the macro }
+qbeam= {
+ #(override-auto-beam-setting '(end 1 8 * *) 1 4 'Staff)
+ #(override-auto-beam-setting '(end 1 8 * *) 2 4 'Staff)
+ #(override-auto-beam-setting '(end 1 8 * *) 3 4 'Staff)
+}
\score {
- <<
- \new Staff << \relative c'' {
- \timeFractionstyle
- \time 4/4
- g8\textn g g g g g g g g g g g4 g8 g g
- }
- >>
-
- %Use the macro
-
- \new Staff << \relative c'' {
- \timeFractionstyle
- \time 4/4
- \qbeam
- g8\texty g g g g g g g g g g g4 g8 g g
- }
- >>
- >>
+ <<
+ \new Staff \relative c'' {
+ \time 4/4
+ g8^\markup { without the macro } g g g g g g g |
+ g g g g4 g8 g g |
+ }
+ %Use the macro
+ \new Staff \relative c'' {
+ \time 4/4
+ \qbeam
+ g8^\markup { with the macro } g g g g g g g |
+ g g g g4 g8 g g |
+ }
+ >>
+ \layout {
+ \context {
+ \Staff
+ \override TimeSignature #'style = #'()
+ }
+ }
}
" }
% begin verbatim
{
- \context Voice {
- c''2.
- % use some scheme code to construct the symbol
- \override BreathingSign #'text = #(markup #:line
- (#:musicglyph "scripts.caesura.curved"
- #:translate (cons -1.75 1.6)
- #:musicglyph "scripts.ufermata"
- ))
- \breathe c''4
- % set the breathe mark back to normal
- \revert BreathingSign #'text
- c''2. \breathe c''4
- \bar "|."
+ c''2.
+ % construct the symbol
+ \override BreathingSign #'text = \markup {
+ \line {
+ \musicglyph #"scripts.caesura.curved" \translate #'(-1.75 . 1.6) \musicglyph #"scripts.ufermata"
+ }
}
+ \breathe c''4
+ % set the breathe mark back to normal
+ \revert BreathingSign #'text
+ c''2. \breathe c''4
+ \bar "|."
}
-
\header {
lsrtags = "expressive-marks, text"
texidoc = "
-This example provides a function to typeset hairpin (de)crescendo with
-some additional text below it, such as \"molto\" or \"poco\".
-
-The example also illustrates how to use modify the way an object
-normally is printed, using some Scheme code.
+This example provides a function to typeset a hairpin (de)crescendo
+with some additional text below it, such as \"molto\" or \"poco\".The
+example also illustrates how to modify the way an object is normally
+printed, using some Scheme code.
" }
% begin verbatim
hairpinWithCenteredText = #(define-music-function
#})
-hairpinMolto = \hairpinWithCenteredText \markup {\italic "molto"}
-hairpinMore = \hairpinWithCenteredText \markup {\bigger "moltissimo"}
+hairpinMolto = \hairpinWithCenteredText \markup { \italic "molto" }
+hairpinMore = \hairpinWithCenteredText \markup { \bigger "moltissimo" }
\new Staff {
\hairpinMolto c'2\< c'2\f
\header {
lsrtags = "expressive-marks"
texidoc = "
-To make the \\flageolet circle smaller you can use the following scheme
-code (found in the Lilypond-user-archive)
+To make the @code{\\flageolet} circle smaller you can use the following
+Scheme code.
" }
% begin verbatim
-F = #(let ((m (make-music 'ArticulationEvent
+smallFlageolet = #(let ((m (make-music 'ArticulationEvent
'articulation-type "flageolet")))
(set! (ly:music-property m 'tweaks)
(acons 'font-size -3
(ly:music-property m 'tweaks)))
m)
-\relative c'' { d4^\flageolet_\markup {"orginal \flageolet "} d4_\flageolet
- c4^\F_\markup {smaller } c4_\F
+\relative c'' { d4^\flageolet_\markup { default size } d4_\flageolet
+ c4^\smallFlageolet_\markup { smaller } c4_\smallFlageolet
}
" }
% begin verbatim
\relative {
- <\tweak #'font-size #+2 c e g c \tweak #'font-size #-2 e>1^\markup{A tiny e}_\markup{A big c}
+ <\tweak #'font-size #+2 c e g c \tweak #'font-size #-2 e>1^\markup { A tiny e }_\markup { A big c }
}
+\layout { ragged-right = ##t }
+
\version "2.11.38"
\header {
- lsrtags = "expressive-marks"
+ lsrtags = "expressive-marks, editorial-and-educational-use"
texidoc = "
The appearance of slurs may be changed from solid to dotted or dashed.
" }
% begin verbatim
-\relative c'{
+\relative c' {
c( d e c) |
\slurDotted
c( d e c) |
\times 2/3 { c8 c c } \times 2/3 { c8 c c }
\override TupletNumber #'text = #tuplet-number::calc-fraction-text
\times 2/3 { c8 c c }
- \override TupletNumber #'transparent = ##t
+ \override TupletNumber #'stencil = ##f
\times 2/3 { c8 c c }
}
fragment = \relative c' {
c4 f4 <e d'>4
- <g a>8 <e a> a4 c2 <d b>4 e4
- c4
+ <g a>8 <e a> a4 c2 <d b>4
+ e2 c2
}
<<
lsrtags = "expressive-marks, text"
texidoc = "
Some dynamics may involve text indications (such as \"più forte\",
-\"piano subito\", etc.). They can be produced using a \\markup bloc.
+\"piano subito\", etc.). They can be produced using a @code{\\markup}
+block.
" }
% begin verbatim
-\layout{ragged-right = ##t}
+\layout { ragged-right = ##t }
-piuf = \markup { \italic "molto" \dynamic "f" }
+piuf = \markup { \italic "più" \dynamic "f" }
-\relative c''{
+\relative c'' {
+ c2
c-\piuf
- c
- c2\< c2\!
-
- c2\< c2\!
}
\header {
lsrtags = "simultaneous-notes, text"
texidoc = "
-The part combiner tool ( \\partcombine command ) allows you to combine
-different parts on a same Staff. You can choose whether you want or
-don't want to add texts such as \"solo\" or \"a2\", by defining the
-printPartCombineTexts property.
+The part combiner tool ( @code{\\partcombine} command ) allows you to
+combine different parts on the same staff. Text directions such as
+\"solo\" or \"a2\" are added by default; to remove them, simply set the
+property @code{printPartCombineTexts} to \"false\". For vocal scores
+(hymns), there is no need to add \"solo\"/\"a2\" texts, so they should
+be switched off. However, you'd better not use it if there are any
+solos, as they won't be indicated. In such cases, you may simply want
+to use standard LilyPond polyphony. This snippet presents the three
+ways two parts can be printed on a same staff: standard polyphony,
+@code{\\partcombine} whitout texts, and @code{\\partcombine} with texts.
-For vocal scores (hymns), there is no need to add \"solo\"/\"a2\"
-texts, so they should be switched off. However, you'd better not use it
-if there are any solos, as they won't be indicated. In such cases, you
-may simply want to use standard LilyPond polyphony.
-
-This snippet presents the three ways two parts can be printed on a same
-staff : standard polyphony, \\partcombine whitout texts, and
-\\partcombine with texts.
" }
% begin verbatim
-musicUp = {
+musicUp = \relative c'' {
\time 4/4
- \relative c'' {
- a4 c4.(g8) a4 |
- g4 e' g,( a8 b) |
- c b a2.
- }
-}
-
-musicDown = {
- \relative c'' {
- g4 e4.(d8) c4 |
- r2 g'4( f8 e) |
- d2 a
- }
+ a4 c4.( g8) a4 |
+ g4 e' g,( a8 b) |
+ c b a2.
}
-\score{
- \new Staff {
- \set Staff.instrumentName = "Standard polyphony "
- << \musicUp \\ \musicDown >>
+musicDown = \relative c'' {
+ g4 e4.( d8) c4 |
+ r2 g'4( f8 e) |
+ d2 \stemDown a
}
- \layout{
- indent = 6.0\cm
+\score {
+ <<
+ <<
+ \new Staff {
+ \set Staff.instrumentName = "Standard polyphony "
+ << \musicUp \\ \musicDown >>
+ }
+ \new Staff \with { printPartCombineTexts = ##f } {
+ \set Staff.instrumentName = "PartCombine without texts "
+ \partcombine \musicUp \musicDown
+ }
+ \new Staff {
+ \set Staff.instrumentName = "PartCombine with texts "
+ \partcombine \musicUp \musicDown
+ }
+ >>
+ >>
+ \layout {
+ indent = 6.0\cm
+ \context {
+ \Score
+ \override SystemStartBar #'collapse-height = #30
+ }
}
}
-
-\score{
- \context Staff {
- \set Staff.instrumentName = "PartCombine without texts "
- \partcombine \musicUp \musicDown
- }
- \layout{
- indent = 6.0\cm
- \context {
- \Voice
- printPartCombineTexts = ##f
- }
- }
-}
-
-\score{
- \context Staff {
- \set Staff.instrumentName = "PartCombine with texts "
- \partcombine \musicUp \musicDown
- }
- \layout{
- indent = 6.0\cm
- \context {
- \Voice
- printPartCombineTexts = ##t
- }
- }
-}
-
" }
% begin verbatim
#(define (compound-time one two num)
- (markup #:override '(baseline-skip . 0) #:number
- (#:line ((#:column (one num)) #:vcenter "+" (#:column (two num))))))
-
+ (markup #:override '(baseline-skip . 0) #:number
+ (#:line ((#:column (one num)) #:vcenter "+" (#:column (two num))))
+ ))
\relative {
- %% compound time signature hack
- \time 5/8
+ % compound time signature hack
\override Staff.TimeSignature #'stencil = #ly:text-interface::print
- \override Staff.TimeSignature #'text = #(compound-time "2" "3" "8" )
+ \override Staff.TimeSignature #'text = #( compound-time "2" "3" "8" )
+ \time 5/8
#(override-auto-beam-setting '(end 1 8 5 8) 1 4)
- c8 d e fis gis | c fis, gis e d | c8 d e4 gis8
+ c8 d e fis gis |
+ c fis, gis e d |
+ c8 d e4 gis8
}
\header {
lsrtags = "expressive-marks"
texidoc = "
-Use a glissando without final note. Contemporary glissando !
+Use a glissando without final note. Contemporary glissando!
" }
% begin verbatim
\relative c'' {
- \override Glissando #'style = #'zigzag
- \time 3/4
- c4 c
- \cadenzaOn c\glissando \hideNotes c,, \unHideNotes \cadenzaOff
- \bar "|"
- }
+ \time 3/4
+ \override Glissando #'style = #'zigzag
+ c4 c
+ \cadenzaOn c\glissando \hideNotes c,, \unHideNotes \cadenzaOff
+ \bar "|"
+}
\addlyrics { Use cadenzaOn glissando hideNotes }
-\addlyrics { unHideNotes cadenzaOff, skip_and_\bar \skip 4 }
-\layout{raggedright = ##t}
-\header { tagline="" }
+\addlyrics { unHideNotes cadenzaOff, skip_and_\bar \skip 4 }
chant-or-psalms-notation.ly
adding-and-extra-staff-at-a-line-break.ly
adding-an-extra-staff.ly
-vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
+mensurstriche-layout-bar-lines-between-the-staves.ly
changing-time-signatures-inside-a-polymetric-section-using--compressmusic.ly
engravers-one-by-one.ly
adding-a-figured-bass-above-or-below-the-notes.ly
+vocal-ensemble-template-with-lyrics-aligned-below-and-above-the-staves.ly
nesting-staves.ly
\header {
lsrtags = "expressive-marks, text, tweaks-and-overrides"
texidoc = "
-The <code>\\startTextSpan</code> and <code>\\stopTextSpan</code>
-commands give you the ability to create text spanners as easily as
-pedals indications or octavations. Override some properties of the
-<code>TextSpanner</code> object to modify its output.
+The @code{\\startTextSpan} and @code{\\stopTextSpan} commands give you
+the ability to create text spanners as easily as pedal indications or
+octavations. Override some properties of the @code{TextSpanner} object
+to modify its output.
" }
% begin verbatim
-\relative c''{
- \override TextSpanner #'edge-text = #'("bla" . "blu")
- a \startTextSpan
- b c
- a \stopTextSpan
-
- \override TextSpanner #'dash-period = #2
- \override TextSpanner #'dash-fraction = #0.0
- a \startTextSpan
- b c
- a \stopTextSpan
-
- \revert TextSpanner #'style
- \override TextSpanner #'style = #'dashed-line \override TextSpanner #'bound-details #'left #'text = \markup { \draw-line #'(0 . 1) }
+\relative c'' {
+ \override TextSpanner #'edge-text = #'("bla" . "blu")
+ a \startTextSpan
+ b c
+ a \stopTextSpan
+
+ \override TextSpanner #'dash-period = #2
+ \override TextSpanner #'dash-fraction = #0.0
+ a \startTextSpan
+ b c
+ a \stopTextSpan
+
+ \revert TextSpanner #'style
+ \override TextSpanner #'style = #'dashed-line \override TextSpanner #'bound-details #'left #'text = \markup { \draw-line #'(0 . 1) }
\override TextSpanner #'bound-details #'right #'text = \markup { \draw-line #'(0 . -2) }
- a \startTextSpan
- b c
- a \stopTextSpan
-
-
- \set Staff.middleCPosition = #-13
-
- \override TextSpanner #'dash-period = #10
- \override TextSpanner #'dash-fraction = #.5
- \override TextSpanner #'thickness = #10
- a \startTextSpan
- b c
- a \stopTextSpan
- \set Staff.middleCPosition = #-6
+ a \startTextSpan
+ b c
+ a \stopTextSpan
+
+ \set Staff.middleCPosition = #-13
+ \override TextSpanner #'dash-period = #10
+ \override TextSpanner #'dash-fraction = #0.5
+ \override TextSpanner #'thickness = #10
+ a \startTextSpan
+ b c
+ a \stopTextSpan
+ \set Staff.middleCPosition = #-6
}
-
--- /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 = "staff-notation, tweaks-and-overrides"
+ texidoc = "
+If there is only one staff in one of the staff types @code{ChoirStaff},
+@code{InnerChoirStaff}, @code{InnerStaffGroup} or @code{StaffGroup},
+the bracket and the starting bar line will not be displayed as standard
+behaviour. This can be changed with:
+
+
+@code{\\override [staffcontext].SystemStartBracket #'collapse-height =
+#1}
+ and
+
+@code{\\override [staffcontext].SystemStartBar #'collapse-height = #1}
+
+
+This applies to all staff contexts with
+@code{systemStartDelimiter}-property set to @code{'SystemStartBracket}.
+
+
+
+For staff contexts with @code{'SystemStartBrace}, such as
+@code{PianoStaff}, this tweaking can be used as well.
+
+
+
+" }
+% begin verbatim
+\score {
+\new StaffGroup <<
+ % Must be lower than your actual amount off staff lines
+ \override StaffGroup.SystemStartBracket #'collapse-height = #1
+ \override Score.SystemStartBar #'collapse-height = #1
+ \new Staff {
+ c'4 d' e' f'
+ }
+ >>
+ }
+ {
+ \new PianoStaff <<
+ \override PianoStaff.SystemStartBrace #'collapse-height = #1
+ \override Score.SystemStartBar #'collapse-height = #1
+ \new Staff {
+ c'4 d' e' f'
+ }
+ >>
+ }
+ \layout {
+ ragged-right = ##t
+ indent = 0\cm
+ }
creating-blank-staves.ly
+making-some-staff-lines-thicker-than-the-others.ly
+changing-the-appearance-of-a-slur-from-solid-to-dotted-or-dashed.ly
default-direction-of-stems-on-the-center-line-of-the-staff.ly
changing-a-single-notes-size-in-a-chord.ly
grid-lines-emphasizing-rhythms-and-notes-synchronization.ly
Ties may be engraved manually by changing the @code{tie-configuration}
property of the @code{TieColumn} object. The first number indicates the
distance from the center of the staff in staff-spaces, and the second
-number indicates the direction (1=up, -1=down).
+number indicates the direction (1 = up, -1 = down).
" }
% begin verbatim
\relative c' {
c1 \mark \default
c1 \mark \default
c1 \mark \default
-
-\break
-
- \set Score.markFormatter = #format-mark-numbers
+ \break
+ \set Score.markFormatter = #format-mark-numbers
c1 \mark #1
c1 \mark \default
c1 \mark \default
\header {
lsrtags = "rhythms, percussion"
texidoc = "
-Though the set-time-signature thing was not the most essential here, it
-has been included to show the beat of this piece (which is a template
-of a real balkan song!).
+Though the polymetric time signature shown was not the most essential
+item here, it has been included to show the beat of this piece (which
+is the template of a real Balkan song!).
" }
% begin verbatim
-#(define (compound-time one two three four five six seven eight nine ten
+#(define (set-time-signature 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))
\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"
+ \override Staff.TimeSignature #'text = #(set-time-signature "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)
\header {
lsrtags = "staff-notation"
texidoc = "
-The \\markup command is quite versatile. In this snippet, it contains a
-\\score bloc instead of texts or marks.
+The @code{\\markup} command is quite versatile. In this snippet, it
+contains a @code{\\score} block instead of texts or marks.
" }
% begin verbatim
tuning = \markup {
- \score {
- \new Staff \with {
- \remove Time_signature_engraver
- } {
- \clef bass <c, g, d g>1
- }
- \layout { ragged-right = ##t }
+ \score {
+ \new Staff \with { \remove Time_signature_engraver }
+ {
+ \clef bass <c, g, d g>1
}
+ \layout { ragged-right = ##t }
+ }
}
-
\header {
- title = "Solo Cello Suites"
- subtitle = "Suite IV"
- subsubtitle = \markup { "Originalstimmung:" \tuning }
+ title = "Solo Cello Suites"
+ subtitle = "Suite IV"
+ subsubtitle = \markup { "Originalstimmung:" \general-align #Y #CENTER \tuning }
}
\relative {
- \time 4/8
- \times 2/3 { c'8 d e } \times 2/3 {c d e}
- \times 2/3 { c8 d e } \times 2/3 {c d e}
- g8 a8 g8 a
- g8 a8 g8 a
+ \time 4/8
+ \times 2/3 { c'8 d e } \times 2/3 { c d e }
+ \times 2/3 { c8 d e } \times 2/3 { c d e }
+ g8 a8 g8 a
+ g8 a8 g8 a
}
--- /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 = "staff-notation, editorial-and-educational-use"
+ texidoc = "
+For pedagogical purposes, you may want to make one staff line thicker
+(e.g. the middle line, to emphasize the line of the G clef). This can
+be achieved by adding extra lines very close to the line you want to
+make thicker, using the #'line-positions property in the StaffSymbol
+context.
+" }
+% begin verbatim
+\score {
+ \new Staff{
+ \override Staff.StaffSymbol #'line-positions =#'(-4 -2 -0.2 0 0.2 2 4 )
+ d'4 e' f' g'
+ }
+}
" }
% begin verbatim
\relative c {
+ \time 2/4
% from upper staffline (position 4) to centre (position 0)
\override Beam #'positions = #'(2 . 0)
- c'8[ c]
+ c'8 c
% from centre to one above centre (position 2)
\override Beam #'positions = #'(0 . 1)
- c[ c]
+ c c
}
--- /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 = "staff-notation, ancient-notation, contexts-and-engravers, tweaks-and-overrides"
+ texidoc = "
+The mensurstriche-layout where the bar lines do not show on the staves
+but between staves can be achieved with a @code{StaffGroup} instead of
+a @code{ChoirStaff}. The bar line on staves is blanked out with an
+@code{\\override} command.
+" }
+% begin verbatim
+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 } >>}
+>>
" }
% 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
+ % 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
}
tuplets have to be beamed manually.
" }
% begin verbatim
-\relative c'' {
- a8
- \repeat unfold 8 {\times 2/3 { c[ b a]}}
- % Insert a manual line break within a tuplet
- \times 2/3 { c[ b \bar "" \break a]}
- \repeat unfold 2 {\times 2/3 { c[ b a]}}
- c8
-}
\layout {
- \context {
- \Voice
- % Permit line breaks within tuplets
- \remove "Forbid_line_break_engraver"
- % Allow beams to be broken at line breaks
- \override Beam #'breakable = ##t
- }
+ \context {
+ \Voice
+ % Permit line breaks within tuplets
+ \remove "Forbid_line_break_engraver"
+ % Allow beams to be broken at line breaks
+ \override Beam #'breakable = ##t
+ }
+}
+\relative c'' {
+ a8
+ \repeat unfold 8 { \times 2/3 { c[ b a] } }
+ % Insert a manual line break within a tuplet
+ \times 2/3 { c[ b \bar "" \break a] }
+ \repeat unfold 2 { \times 2/3 { c[ b a] } }
+ c8
}
lsrtags = "rhythms, percussion"
texidoc = "
In the following snippet, two parts have a completely different time
-signature, and yet keep synchronized. This can be achieved with the
-@code{\\compressMusic} command, as demonstrated here. The barlines
-can't be printed at the @code{Score} level anymore, so you have to
-remove the @code{Barline_engraver} and put it in the @code{Staff}
-context.
+signature, yet remain synchronized. The barlines can't be printed at
+the @code{Score} level anymore, so you have to remove the
+@code{Barline_engraver} and put it in the @code{Staff} context.
" }
% begin verbatim
% Thanks to Adam James Wilson for this snippet
\paper {
- indent = #0
- ragged-right = ##t
+ indent = #0
+ ragged-right = ##t
}
-global = { \time 3/4 { s2. * 3 } \bar "" \break { s2. * 3 }}
+global = { \time 3/4 { s2.*3 } \bar "" \break { s2.*3 } }
\layout {
- \context { \Score
- \remove "Timing_translator"
- \remove "Time_signature_engraver"
- \remove "Default_bar_line_engraver"
- \override SpacingSpanner #'uniform-stretching = ##t
- \override SpacingSpanner #'strict-note-spacing = ##t
- proportionalNotationDuration = #(ly:make-moment 1 64)
- }
- \context { \Staff
- \consists "Timing_translator"
- \consists "Default_bar_line_engraver"
- \consists "Time_signature_engraver"
- }
- \context { \Voice
- \remove Forbid_line_break_engraver
- tupletFullLength = ##t
- }
+ \context {
+ \Score
+ \remove "Timing_translator"
+ \remove "Time_signature_engraver"
+ \remove "Default_bar_line_engraver"
+ \override SpacingSpanner #'uniform-stretching = ##t
+ \override SpacingSpanner #'strict-note-spacing = ##t
+ proportionalNotationDuration = #(ly:make-moment 1 64)
+ }
+ \context {
+ \Staff
+ \consists "Timing_translator"
+ \consists "Default_bar_line_engraver"
+ \consists "Time_signature_engraver"
+ }
+ \context {
+ \Voice
+ \remove "Forbid_line_break_engraver"
+ tupletFullLength = ##t
+ }
}
-
-Bassklarinette = \new Staff <<
- \global
- {
- \bar "|"
- \clef treble
- \time 3/8
- d''4.
-
- \bar "|"
- \time 3/4
- r8 des''2( c''8)
-
- \bar "|"
- \time 7/8
- r4. ees''2 ~
-
- \bar "|"
- \time 2/4
- \tupletUp
- \times 2/3 {ees''4 r4 d''4 ~}
-
- \bar "|"
- \time 3/8
- \tupletUp
- \times 3/4 {d''4 r4}
-
- \bar "|"
- \time 2/4
- e''2
-
- \bar "|"
- \time 3/8
- es''4.
-\bar "|"
-\time 3/4
-r8 d''2 r8
-\bar "|"
- }
- >>
-Perkussion = \new StaffGroup <<
- \new Staff <<
- \global
- {
- \bar "|"
- \clef percussion
- \time 3/4
- r4 c'2 ~
-
- \bar "|"
- c'2.
-
- \bar "|"
- R2.
-
- \bar "|"
- r2 g'4 ~
-
- \bar "|"
- g'2. ~
-
- \bar "|"
- g'2.
- }
- >>
- \new Staff <<
- \global
- {
- \bar "|"
- \clef percussion
- \time 3/4
- R2.
-
- \bar "|"
- g'2. ~
-
- \bar "|"
- g'2.
-
- \bar "|"
- r4 g'2 ~
-
- \bar "|"
- g'2 r4
-
- \bar "|"
- g'2.
- }
- >>
- >>
-
-\score { << \Bassklarinette \Perkussion >>
-
+Bassklarinette = \new Staff <<
+ \global {
+ \bar "|"
+ \clef treble
+ \time 3/8
+ d''4.
+
+ \bar "|"
+ \time 3/4
+ r8 des''2( c''8)
+
+ \bar "|"
+ \time 7/8
+ r4. ees''2 ~
+
+ \bar "|"
+ \time 2/4
+ \tupletUp
+ \times 2/3 { ees''4 r4 d''4 ~ }
+
+ \bar "|"
+ \time 3/8
+ \tupletUp
+ \times 3/4 { d''4 r4 }
+
+ \bar "|"
+ \time 2/4
+ e''2
+
+ \bar "|"
+ \time 3/8
+ es''4.
+
+ \bar "|"
+ \time 3/4
+ r8 d''2 r8
+ \bar "|"
+ }
+>>
+
+Perkussion = \new StaffGroup <<
+ \new Staff <<
+ \global {
+ \bar "|"
+ \clef percussion
+ \time 3/4
+ r4 c'2 ~
+
+ \bar "|"
+ c'2.
+
+ \bar "|"
+ R2.
+
+ \bar "|"
+ r2 g'4 ~
+
+ \bar "|"
+ g'2. ~
+
+ \bar "|"
+ g'2.
+ }
+ >>
+ \new Staff <<
+ \global {
+ \bar "|"
+ \clef percussion
+ \time 3/4
+ R2.
+
+ \bar "|"
+ g'2. ~
+
+ \bar "|"
+ g'2.
+
+ \bar "|"
+ r4 g'2 ~
+
+ \bar "|"
+ g'2 r4
+
+ \bar "|"
+ g'2.
+ }
+ >>
+>>
+
+\score {
+ << \Bassklarinette \Perkussion >>
}
-
texidoc = "
Although you can't use @code{s} in @code{\\lyricmode} (it's taken to be
a literal \"s\", not a space) you can use either @code{\"\"} or
-@code{_} .So for example:
+@code{_}So for example:
" }
% begin verbatim
-<<
+<<
\relative c'' { a4 b c d }
- \new Lyrics \lyricmode { a4 _2 gap4 }
+ \new Lyrics \lyricmode { a4 "" _ gap }
>>
-
-
creating-blank-staves.ly
time-signature-in-parentheses.ly
+mensurstriche-layout-bar-lines-between-the-staves.ly
adding-and-extra-staff-at-a-line-break.ly
changing-the-number-of-lines-in-a-staff.ly
incipit.ly
+display-bracket-with-only-one-staff-in-a-system.ly
inserting-score-fragments-above-the-staff,-as-markups.ly
adding-an-extra-staff.ly
changing-the-staff-size.ly
clefs-commonly-tweaked-properties.ly
quoting-another-voice.ly
volta-multi-staff.ly
-non-traditional-key-signatures.ly
nesting-staves.ly
+non-traditional-key-signatures.ly
+making-some-staff-lines-thicker-than-the-others.ly
% Test it:
-\relative c'{
- c2^\markup{ \NWS-box ABCD }
- c^\markup{\NWS-box \note #"4" #1.0 }
+\relative c' {
+ c2^\markup { \NWS-box ABCD }
+ c^\markup { \NWS-box \note #"4" #1.0 }
}
-altering-the-number-of-stems-in-a-beam.ly
+display-bracket-with-only-one-staff-in-a-system.ly
time-signature-in-parentheses.ly
-vertically-centered-dynamics-and-textscripts.ly
-proportional-strict-notespacing.ly
changing-the-default-text-font-family.ly
-transcription-of-ancient-music-with-incipit.ly
-alignment-vertical-spacing.ly
+drawing-boxes-around-grobs.ly
manually-controlling-beam-positions.ly
custodes.ly
-drawing-boxes-around-grobs.ly
move-specific-text.ly
-drawing-circles-around-various-objects.ly
-making-an-object-invisible-with-the-transparent-property.ly
rest-styles.ly
-creating-text-spanners.ly
using-the--tweak-command-to-tweak-individual-grobs.ly
controlling-tuplet-bracket-visibility.ly
positioning-multi--measure-rests.ly
-caesura-railtracks-with-fermata.ly
-changing-form-of-multi--measure-rests.ly
-rhythmic-slashes.ly
changing-the-staff-size.ly
-changing-a-single-notes-size-in-a-chord.ly
clefs-commonly-tweaked-properties.ly
vertically-aligning-ossias-and-lyrics.ly
changing-properties-for-individual-grobs.ly
+altering-the-number-of-stems-in-a-beam.ly
+mensurstriche-layout-bar-lines-between-the-staves.ly
+vertically-centered-dynamics-and-textscripts.ly
+proportional-strict-notespacing.ly
+making-an-object-invisible-with-the-transparent-property.ly
+transcription-of-ancient-music-with-incipit.ly
+alignment-vertical-spacing.ly
+drawing-circles-around-various-objects.ly
+creating-text-spanners.ly
+caesura-railtracks-with-fermata.ly
+changing-form-of-multi--measure-rests.ly
+rhythmic-slashes.ly
+changing-a-single-notes-size-in-a-chord.ly
nesting-staves.ly
#endif
#include <libguile.h>
-
+#include <string.h>
/*
Hack for various MacOS incarnations.
#include <cstdio>
using namespace std;
+#include <string.h>
#include "std-string.hh"
#include "lily-proto.hh"
#include "translator.icc"
+#include <string.h>
/*
TODO:
\set Score.skipBars = ##t
}
+numericTimeSignature = {
+ \override Staff.TimeSignature #'style = #'()
+}
+
+defaultTimeSignature = {
+ \revert Staff.TimeSignature #'style
+}
+
% For drawing vertical chord brackets with \arpeggio
% This is a shorthand for the value of the print-function property
DOCUMENTATION_INCLUDES = \
-I $(top-src-dir)/Documentation/user \
-I $(top-build-dir)/Documentation/user/$(outdir)
-DOCUMENTATION_INCLUDES += $(foreach lang,$(LANGS), -I $(top-build-dir)/Documentation/$(lang)/user/$(outdir))
LILYPOND_BOOK_INCLUDES += $(DOCUMENTATION_INCLUDES)
MAKEINFO_FLAGS += --force --enable-encoding -D 'version $(TOPLEVEL_VERSION)' $(DOCUMENTATION_INCLUDES)
ifeq ($(out),)
LILYPOND_BOOK_PROCESS = true
+LILYPOND_BOOK_FLAGS += --skip-lily-check
else
LILYPOND_BOOK_PROCESS = $(LILYPOND_BINARY)
endif
+ifeq ($(out),test)
+LILYPOND_BOOK_FLAGS += --skip-png-check
+endif
TEXINPUTS=$(top-src-dir)/tex/::
export TEXINPUTS
1:'\\stopTextSpan'}.get (self.span_direction, '')
class BracketSpannerEvent (SpanEvent):
+ # Ligature brackets use prefix-notation!!!
+ def print_before_note (self, printer):
+ if self.span_direction == -1:
+ printer.dump ('\[')
+ # the the bracket after the last note
+ def print_after_note (self, printer):
+ if self.span_direction == 1:
+ printer.dump ('\]')
+ # we're printing everything in print_(before|after)_note...
def ly_expression (self):
- return {-1: '\\startGroup',
- 1:'\\stopGroup'}.get (self.span_direction, '')
+ return '';
class OctaveShiftEvent (SpanEvent):
action='store', dest='output_dir',
default='')
+ p.add_option ('--skip-lily-check',
+ help=_ ("do not fail if no lilypond output is found."),
+ metavar=_ ("DIR"),
+ action='store_true', dest='skip_lilypond_run',
+ default=False)
+
+ p.add_option ('--skip-png-check',
+ help=_ ("do not fail if no PNG images are found for EPS files"),
+ metavar=_ ("DIR"),
+ action='store_true', dest='skip_png_check',
+ default=False)
+
p.add_option ('--lily-output-dir',
help=_ ("write lily-XXX files to DIR, link into --output dir."),
metavar=_ ("DIR"),
return re.sub (r'\\(version|sourcefileline|sourcefilename)[^\n]*\n', '', ly)
def link_all_output_files (self, output_dir, output_dir_files, destination):
- existing = self.all_output_files (output_dir, output_dir_files)
+ existing, missing = self.all_output_files (output_dir, output_dir_files)
+ if missing:
+ print '\nMissing', missing
+ raise CompileError(self.basename())
for name in existing:
try:
os.unlink (os.path.join (destination, name))
output_dir_files is the list of files in the output directory.
"""
- class Missing(Exception):
- pass
-
- result = set()
+ result = set ()
+ missing = set ()
base = self.basename()
full = os.path.join (output_dir, base)
def consider_file (name):
if name in output_dir_files:
result.add (name)
-
+
def require_file (name):
- if name not in output_dir_files:
- raise Missing
- result.add (name)
-
- try:
- for required in [base + '.ly',
- base + '.txt',
- base + '-systems.count']:
- require_file (required)
-
- map (consider_file, [base + '.tex',
- base + '.eps',
- base + '.texidoc',
- base + '-systems.texi',
- base + '-systems.tex',
- base + '-systems.pdftexi'])
-
- if base + '.eps' in result and self.format in (HTML, TEXINFO):
- page_count = ps_page_count (full + '.eps')
- if page_count <= 1:
- require_file (base + '.png')
- else:
- for page in range (1, page_count + 1):
- require_file (base + '-page%d.png' % page)
+ if name in output_dir_files:
+ result.add (name)
+ else:
+ missing.add (name)
+
+ # UGH - junk global_options
+ skip_lily = global_options.skip_lilypond_run
+ for required in [base + '.ly',
+ base + '.txt']:
+ require_file (required)
+ if not skip_lily:
+ require_file (base + '-systems.count')
+
+ map (consider_file, [base + '.tex',
+ base + '.eps',
+ base + '.texidoc',
+ base + '-systems.texi',
+ base + '-systems.tex',
+ base + '-systems.pdftexi'])
+
+ # UGH - junk global_options
+ if (base + '.eps' in result and self.format in (HTML, TEXINFO)
+ and not global_options.skip_png_check):
+ page_count = ps_page_count (full + '.eps')
+ if page_count <= 1:
+ require_file (base + '.png')
+ else:
+ for page in range (1, page_count + 1):
+ require_file (base + '-page%d.png' % page)
+ system_count = 0
+ if not skip_lily and not missing:
system_count = int(file (full + '-systems.count').read())
- for number in range(1, system_count + 1):
- systemfile = '%s-%d' % (base, number)
- require_file (systemfile + '.eps')
- consider_file (systemfile + '.pdf')
- except Missing:
- return None
+ for number in range(1, system_count + 1):
+ systemfile = '%s-%d' % (base, number)
+ require_file (systemfile + '.eps')
+ consider_file (systemfile + '.pdf')
- return result
+ return (result, missing)
def is_outdated (self, output_dir, current_files):
- return self.all_output_files (output_dir, current_files) is None
+ found, missing = self.all_output_files (output_dir, current_files)
+ return missing
def filter_text (self):
"""Run snippet bodies through a command (say: convert-ly).
This functionality is rarely used, and this code must have bitrot.
"""
-
code = self.substring ('code')
s = filter_pipe (code, global_options.filter_cmd)
d = {
def find_toplevel_snippets (input_string, format, types):
res = {}
for t in types:
- res[t] = ly.re.compile (snippet_res[format][t])
+ res[t] = re.compile (snippet_res[format][t])
snippets = []
index = 0
output_name = ''
LINE_BELL = 60
-scale_steps = [0,2,4,5,7,9,11]
+scale_steps = [0, 2, 4, 5, 7, 9, 11]
global_options = None
-
clocks_per_1 = 1536
clocks_per_4 = 0
return p + e
-
class Duration:
allowed_durs = (1, 2, 4, 8, 16, 32, 64, 128)
def __init__ (self, clocks):
return retval.values ()
-# Brackets need a special engraver added the Staff context!
-def musicxml_bracket_to_ly ():
- layout_information.set_context_item ('Staff', '\consists "Horizontal_bracket_engraver" % for \\startGroup and \\stopGroup brackets')
- return musicexp.BracketSpannerEvent ()
-
spanner_event_dict = {
'beam' : musicexp.BeamEvent,
'dashes' : musicexp.TextSpannerEvent,
- 'bracket' : musicxml_bracket_to_ly,
+ 'bracket' : musicexp.BracketSpannerEvent,
'glissando' : musicexp.GlissandoEvent,
'octave-shift' : musicexp.OctaveShiftEvent,
'pedal' : musicexp.PedalEvent,
ev = musicxml_spanner_to_lily_event (a)
if ev:
ev_chord.append (ev)
-
+
+ # accidental-marks are direct children of <notation>!
+ for a in notations.get_named_children ('accidental-mark'):
+ ev = musicxml_articulation_to_lily_event (a)
+ if ev:
+ ev_chord.append (ev)
+
# Articulations can contain the following child elements:
# accent | strong-accent | staccato | tenuto |
# detached-legato | staccatissimo | spiccato |