@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: aae416a0211bad0bbed5c82b91d80a83d21e8054
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
-* How LilyPond files work::
-* Voices contain music::
-* Contexts and engravers::
-* Extending the templates::
+@menu
+* How LilyPond files work::
+* Voices contain music::
+* Contexts and engravers::
+* Extending the templates::
@end menu
@node How LilyPond files work
@section How LilyPond files work
-UNTRANSLATED NODE: IGNORE ME
-
-@menu
-* Introduction to the LilyPond file structure::
-* Score is a (single) compound musical expression::
-* Nesting music expressions::
-* On the un-nestedness of brackets and ties::
+El formato de entrada de LilyPond es bastante libre en su forma y concede a los usuarios con experiencia
+mucha flexibilidad para estructurar sus archivos de la forma que deseen.
+Sin embargo, toda esta flexibilidad puede hacer que las cosas se vuelvan confusas para
+los nuevos usuarios. Esta sección le va a explicar parte de esta estructura, pero
+puede obviar ciertos detalles en aras de la simplicidad. Para ver una
+descripción completa del formato de entrada, consulte @ruser{File structure}.
+
+Casi todos los ejemplos del presente manual con pequeños fragmentos de código. Por ejemplo
+
+@example
+c4 a b c
+@end example
+
+Como (esperamos) ya se habrá dado cuenta, esto no se puede compilar tal cual
+está. Estos ejemplos son sólo resúmenes de los ejemplos
+completos. Todos ellos necesitan, cuando menos, un par de llaves antes y después para que se puedan compilar
+
+@example
+@{
+ c4 a b c
+@}
+@end example
+
+Casi todos los ejemplos también usan el comando @code{\relative c'}
+(o @code{c''}). Esto no es necesario para conseguir que los ejemplos
+simplemente se puedan compilar, pero casi siempre la salida tendrá un aspecto
+muy extraño si omite el @code{\relative c'}.
+
+@lilypond[quote,fragment,ragged-right,verbatim]
+\relative c'' {
+ c4 a b c
+}
+@end lilypond
+
+Ahora nos encontramos con el único tropiezo de verdad: la entrada de
+LilyPond en esta forma es realmente @emph{otra}
+abreviatura. Aunque se puede compilar y presenta la
+salida correcta, es una abreviatura de
+
+@example
+\score @{
+ \relative c'' @{
+ c4 a b c
+ @}
+@}
+@end example
+
+Un @code{\score} debe comenzar con una única expresión
+musical. Recuerde que una expresión musical podía ser
+cualquier cosa desde una sola nota hasta todo un
+
+@example
+@{
+ \new GrandStaff <<
+ introduzca aquí la partitura completa de una ópera de Wagner
+ >>
+@}
+@end example
+
+@noindent
+Ya que todo está dentro de @code{@{ ... @}}, cuenta
+como una sola expresión musical.
+
+La @code{\score} puede contener otras cosas como
+
+@example
+\score @{
+ @{ c'4 a b c' @}
+ \layout @{ @}
+ \midi @{ @}
+ \header @{ @}
+@}
+@end example
+
+@noindent
+Hay personas que ponen algunos de estos comandos fuera del
+bloque @code{\score} (por ejemplo, @code{\header} se
+sitúa con frecuencia por encima del @code{\score}. Es tan sólo
+otra abreviatura que LilyPond acepta.
+
+@cindex variables
+@cindex identificadores
+
+Otro atajo genial es la posibilidad de definir variables.
+Todas las plantillas emplean lo siguiente:
+
+@example
+melodia = \relative c' @{
+ c4 a b c
+@}
+
+\score @{
+ @{ \melodia @}
+@}
+@end example
+
+Cuando LilyPond examina este archivo, toma el valor de
+@code{melodia} (todo lo que está después del signo igual) y lo
+inserta dondequiera que ve
+@code{\melodia}. No se requiere un cuidado especial con los
+nombres -- puede ser @code{melodia}, @code{global},
+@code{manoderechadelpiano}, o @code{fulanomengano} --. Puede
+usar el nombre de variable que desee. Para ver más
+detalles, consulte
+@ruser{Saving typing with identifiers and functions}.
+
+Para ver una definición completa
+del formato de entrada, consulte @ruser{File structure}.
+
+@menu
+* Introduction to the LilyPond file structure::
+* Score is a (single) compound musical expression::
+* Nesting music expressions::
+* On the un-nestedness of brackets and ties::
@end menu
@node Introduction to the LilyPond file structure
@subsection Introduction to the LilyPond file structure
@node Score is a (single) compound musical expression
@subsection Score is a (single) compound musical expression
-UNTRANSLATED NODE: IGNORE ME
+En la sección anterior, @ruser{How LilyPond files work},
+pudimos ver la organización general de los archivos de entrada
+de LilyPond. Pero parece que nos saltamos la parte más importante:
+¿cómo averiguamos qué escribir después de
+@code{\score}?
+
+No nos hemos saltado nada en absoluto. El gran misterio es, sencillamente,
+que no hay @emph{ningún} misterio. La siguiente línea lo explica
+todo:
+
+@quotation
+@emph{Una @code{\score} debe comenzar con una única expresión musical.}
+@end quotation
+
+@noindent
+Quizá encuentre útil dar un repaso a
+@ruser{Music expressions explained}. En esta sección, vimos
+cómo elaborar grandes expresiones musicales a partir de pequeñas
+piezas -- comenzábamos con notas, luego acordes, etc. --. Ahora
+partiremos de una gran expresión musical y
+recorreremos el camino inverso hacia abajo.
+
+@example
+\score @{
+ @{ % esta llave da inicio a la expresión musical completa
+ \new GrandStaff <<
+ introduzca aquí la partitura completa de una ópera de Wagner
+ >>
+ @} % esta llave da por terminada la expresión musical completa
+ \layout @{ @}
+@}
+@end example
+
+Una ópera de Wagner completa puede ser fácilmente el doble de larga que este manual,
+por tanto vamos a hacer sólo un cantante y un piano.
+No necesitamos un @code{GrandStaff} para este conjunto, así que
+lo retiramos. Sin embargo, sí que @emph{necesitamos}
+un cantante y un piano.
+
+@example
+\score @{
+ @{
+ <<
+ \new Staff = "cantante" <<
+ >>
+ \new PianoStaff = "piano" <<
+ >>
+ >>
+ @}
+ \layout @{ @}
+@}
+@end example
+
+Recuerde que usamos @code{<<} y @code{>>} para presentar música
+simultánea. Y desde luego ¡queremos presentar las partes vocal y del
+piano al mismo tiempo!
+
+@example
+\score @{
+ @{
+ <<
+ \new Staff = "cantante" <<
+ \new Voice = "vocal" @{ @}
+ >>
+ \new Lyrics \lyricsto vocal \new Lyrics @{ @}
+ \new PianoStaff = "piano" <<
+ \new Staff = "superior" @{ @}
+ \new Staff = "inferior" @{ @}
+ >>
+ >>
+ @}
+ \layout @{ @}
+@}
+@end example
+
+Ahora tenemos muchos más detalles. Tenemos la pauta del cantante:
+contiene una @code{Voice} o voz (en LilyPond, este término
+hace referencia a un conjunto de notas, no necesariamente notas
+vocales -- por ejemplo, un violín generalmente toca una
+voz --) y el texto de la canción. También tenemos una pauta de piano:
+contiene un pentagrama superior (mano derecha) y un pentagrama
+inferior (mano izquierda).
+
+En este momento podríamos comenzar a meter las notas. Dentro de las
+llaves que siguen a @code{\new Voice = vocal},
+podríamos empezar escribiendo
+
+@example
+\relative c'' @{
+ a4 b c d
+@}
+@end example
+
+Pero si lo hiciéramos, la sección @code{\score} se haría bastante
+larga y sería más difícil comprender lo que ocurre. En lugar de esto
+utilizaremos identificadores
+o variables.
+
+@example
+melodia = @{ @}
+texto = @{ @}
+superior = @{ @}
+inferior = @{ @}
+\score @{
+ @{
+ <<
+ \new Staff = "cantante" <<
+ \new Voice = "vocal" @{ \melodia @}
+ >>
+ \new Lyrics \lyricsto vocal \new Lyrics @{ \texto @}
+ \new PianoStaff = "piano" <<
+ \new Staff = "superior" @{ \superior @}
+ \new Staff = "inferior" @{ \inferior @}
+ >>
+ >>
+ @}
+ \layout @{ @}
+@}
+@end example
+
+@noindent
+Recuerde que puede usar casi cualquier nombre que se le antoje. Las
+limitaciones impuestas a los nombres de identificador se detallan en
+@ruser{File structure}.
+
+Cuando escriba una sección @code{\score} o cuando la esté
+leyendo, hágalo despacio y con cuidado. Comience por
+la capa exterior y luego trabaje sobre cada una de las capas
+interiores. Esto también sirve para ser estricto con los márgenes
+-- ¡asegúrese de que en su editor de texto cada elemento de la misma capa
+comienza en la misma
+posición horizontal! --.
+
@node Nesting music expressions
@subsection Nesting music expressions
UNTRANSLATED NODE: IGNORE ME
-@menu
-* I'm hearing Voices::
-* Explicitly instantiating voices::
-* Voices and vocals::
+@menu
+* I'm hearing Voices::
+* Explicitly instantiating voices::
+* Voices and vocals::
@end menu
@node I'm hearing Voices
@subsection I'm hearing Voices
UNTRANSLATED NODE: IGNORE ME
-@menu
-* Contexts explained::
-* Creating contexts::
-* Engravers explained::
-* Modifying context properties::
-* Adding and removing engravers::
+@menu
+* Contexts explained::
+* Creating contexts::
+* Engravers explained::
+* Modifying context properties::
+* Adding and removing engravers::
@end menu
@node Contexts explained
@subsection Contexts explained
-UNTRANSLATED NODE: IGNORE ME
+Cuando se imprime la música, se tienen que añadir a la salida una gran cantidad de elementos
+notacionales. Por ejemplo, compare la entrada y la salida del siguiente ejemplo:
+
+@lilypond[quote,verbatim,relative=2,fragment]
+cis4 cis2. g4
+@end lilypond
+
+La entrada es bastante escueta, pero en la salida se añaden líneas divisorias, alteraciones accidentales,
+la clave y la indicación de compás. LilyPond @emph{interpreta} la
+entrada. En esta fase se inspecciona la información musical en orden temporal,
+de forma parecida a la lectura de una partitura de izquierda a derecha. Mientras se lee
+la entrada, el programa recuerda dónde se encuentran los límites de los compases, y qué notas
+requieren alteraciones explícitas. Esta información se puede presentar sobre varios
+niveles. Por ejemplo, el efecto de una alteración accidental se encuentra limitada
+a un solo pentagrama, mientras que una barra divisoria debe estar sincronizada a través
+de la partitura de arriba a abajo.
+
+Dentro de LilyPond, estas reglas y pequeñas porciones de información se agrupan en
+@emph{Contexts}. Algunos ejemplos de contextos son @code{Voice} (Voz),
+@code{Staff} (Pauta o pentagrama) y @code{Score} (Partitura). Los contextos son jerárquicos, por
+ejemplo: un @code{Staff} contener muchas @code{Voice}s, y una
+@code{Score} puede contener muchos contextos de @code{Staff}.
+
+@quotation
+@sourceimage{context-example,5cm,,}
+@end quotation
+
+Cada contexto asume la responsabilidad de imponer algunas reglas de notación,
+creando ciertos objetos de notación y manteniendo las propiedades
+asociadas. Por ejemplo, el contexto @code{Voice} puede introducir una alteración
+accidental y entonces el contexto @code{Staff} mantiene la regla de mostrar o
+suprimir la alteración para el resto del compás. La
+sincronización de las líneas divisorias se gestiona dentro del contexto de la partitura, @code{Score}.
+
+Sin embargo, en algunas músicas posiblemente no queramos que las líneas divisorias estén
+sincronizada (pensemos en una partitura polimétrica en compases de 4/4 y de 3/4). En tales casos,
+debemos modificar los ajustes por omisión de los contextos @code{Score}
+y @code{Staff}.
+
+Para partituras muy sencillas, los contextos se crean implícitamente y no debemos
+preocuparnos por ellos. Para piezas mayores, como por ejemplo cualquiera que tenga más de un pentagrama,
+los contextos se deben crear explícitamente para asegurarnos
+de que tendremos la cantidad exacta de pentagramas que necesitamos,
+y que están en el orden correcto. Para tipografiar piezas
+con notación especializada, puede ser útil modificar contextos existentes
+o definir unos nuevos.
+
+
+En la referencia del programa se encuentra una descripción completa de todos los contextos que están disponibles,
+consulte
+@ifhtml
+@internalsref{Contexts}.
+@end ifhtml
+@ifnothtml
+Traducción @expansion{} Contexto.
+@end ifnothtml
+
+@c [TODO: describe propagation]
@node Creating contexts
@subsection Creating contexts
-UNTRANSLATED NODE: IGNORE ME
+Para partituras que sólo tienen una voz y un pentagrama, los contextos se
+crean automáticamente. Para partituras más complejas, es necesario crearlos
+a mano. Existen tres instrucciones que hacen esto.
+
+@itemize
+
+@item
+La instrucción más fácil es @code{\new}, y es también la más rápida de escribir.
+Se antepone a una expresión musical, por ejemplo
+
+@funindex \new
+@cindex nuevos, contextos
+@cindex Contexto, creación de
+
+@example
+\new @var{tipo} @var{expresión_musical}
+@end example
+
+@noindent
+donde @var{tipo} es el nombre de un contexto (como @code{Staff} o
+@code{Voice}). Esta instrucción crea un contexto nuevo, y empieza a
+interpretar la @var{expresión_musical} con él.
+
+Una aplicación práctica de @code{\new} es una partitura con muchos pentagramas.
+Cada parte que debe ir en su propio pentagrama, va precedida de
+@code{\new Staff}.
+
+@lilypond[quote,verbatim,relative=2,ragged-right,fragment]
+<<
+ \new Staff { c4 c }
+ \new Staff { d4 d }
+>>
+@end lilypond
+
+La instrucción @code{\new} puede también dar nombre al contexto,
+
+@example
+\new @var{tipo} = @var{identificador} @var{música}
+@end example
+Sin embargo, este nombre especificado por el usuario sólo se utiliza si no hay ya otro contexto
+anterior con el mismo nombre.
+
+
+@funindex \context
+
+@item
+Como @code{\new}, la instrucción @code{\context} también dirige una expresión musical
+a un objeto de contexto, pero da al contexto un nombre explícito. La sintaxis
+es
+
+@example
+\context @var{tipo} = @var{identificador} @var{música}
+@end example
+
+En esta forma, la instrucción buscará un contexto existente del @var{tipo} especificado
+que tenga el nombre @var{identificador}. Si ese contexto aún no existe, se crea
+un contexto nuevo con el nombre especificado. Esto es útil si nos vamos a referir
+más tarde al contexto. Por ejemplo, cuando
+se escribe la letra, la melodía está dentro de un contexto con nombre
+
+@example
+\context Voice = "@b{tenor}" @var{música}
+@end example
+
+@noindent
+de forma que los textos se puedan alienar correctamente con sus notas,
+
+@example
+\new Lyrics \lyricsto "@b{tenor}" @var{letra}
+@end example
+
+@noindent
+
+Otro uso posible de los contextos con nombre es la fusión de dos expresiones musicales
+distintas en un solo contexto. En el siguiente ejemplo,
+se introducen por separado las articulaciones y las notas,
+
+@example
+musica = @{ c4 c4 @}
+decoracion = @{ s4-. s4-> @}
+@end example
+
+se combinan enviando los dos al mismo contexto @code{Voice},
+
+@example
+<<
+ \new Staff \context Voice = "A" \musica
+ \context Voice = "A" \decoracion
+>>
+@end example
+@lilypond[quote,ragged-right]
+music = { c4 c4 }
+arts = { s4-. s4-> }
+\relative c'' <<
+ \new Staff \context Voice = "A" \music
+ \context Voice = "A" \arts
+>>
+@end lilypond
+
+Con este mecanismo, es posible definir un Urtext (una edición
+original), con la posibilidad de poner articulaciones distintas sobre las
+mismas notas.
+
+@cindex crear contextos
+
+@item
+La tercera instrucción para crear contextos es
+@example
+\context @var{tipo} @var{música}
+@end example
+
+
+@noindent
+Esto es similar a @code{\context} con @code{= @var{identificador}}, pero se corresponde con
+cualquier contexto del tipo @var{tipo}, sin importar qué nombre se le ha dado.
+
+Esta variante se usa con expresiones musicales que se pueden interpretar en
+varios niveles. Por ejemplo, la instrucción @code{\applyOutput} (véase
+@ref{Running a function on all layout objects}). Sin una instrucción
+@code{\context} explícita, normalmente se aplicaría a @code{Voice}
+
+@example
+\applyOutput #'@var{contexto} #@var{función} % aplicar al contexto Voice
+@end example
+
+Para que se interprete dentro de los niveles de @code{Score} o @code{Staff}, utilice las siguientes
+formas:
+
+@example
+\applyOutput #'Score #@var{función}
+\applyOutput #'Staff #@var{función}
+@end example
+
+@end itemize
@node Engravers explained
@subsection Engravers explained
@node Modifying context properties
@subsection Modifying context properties
-UNTRANSLATED NODE: IGNORE ME
+@cindex properties
+@funindex \set
+@cindex changing properties
+
+Cada contexto puede tener diferentes @emph{propiedades} o variables contenidas
+en dicho contexto. Se pueden cambiar mientras se desarrolla la fase de interpretación.
+Esto se consigue insertando la instrucción @code{\set} en la música,
+
+@example
+\set @var{contexto}.@var{propiedad} = #@var{valor}
+@end example
+
+Por ejemplo,
+@lilypond[quote,verbatim,relative=2,fragment]
+R1*2
+\set Score.skipBars = ##t
+R1*2
+@end lilypond
+
+Esta instrucción hace que se salten los compases que no tienen ninguna nota. El resultado es que
+los silencios multicompás se comprimen. El valor asignado es un objeto del lenguaje Scheme. En
+este caso, es @code{#t}, el valor booleano Verdadero.
+
+Si el argumento @var{contexto} se deja en blanco, entonces se utiliza el contexto actual más bajo
+(normalmente @code{ChordNames}, @code{Voice} o
+@code{Lyrics}). En este ejemplo,
+
+@lilypond[quote,verbatim,relative=2,fragment]
+c8 c c c
+\set autoBeaming = ##f
+c8 c c c
+@end lilypond
+
+@noindent
+el argumento @var{contexto} para la instrucción @code{\set} está omitido, por tanto
+el barrado automático está desactivado en la @internalsref{Voice} (voz) actual. Fíjese en que
+el contexto más bajo no siempre contiene la propiedad que quiere
+cambiar. Por ejemplo, si intenta establecer la propiedad @code{skipBars}
+(del contexto más bajo, en este caso @code{Voice}) no se producirá ningún
+efecto.
+
+@lilypond[quote,verbatim,relative=2,fragment]
+R1*2
+\set skipBars = ##t
+R1*2
+@end lilypond
+
+Los contextos son jerárquicos, de forma que si se especificó un contexto mayor, por
+ejemplo @code{Staff}, entonces el cambio también se aplicaría a todos los
+@code{Voice}s o contextos de voz en el pentagrama actual. El cambio se aplica
+@q{al vuelo}, mientras transcurre la música, de manera que el ajuste sólo afecta al segundo
+grupo de corcheas.
+
+@funindex \unset
+
+También existe una instrucción @code{\unset},
+@example
+\unset @var{contexto}.@var{propiedad}
+@end example
+
+@noindent
+que quita la definición de la @var{propiedad}. Esta instrucción quita
+la definición solamente si está establecida dentro del @var{contexto} especificado, por lo que
+
+@example
+\set Staff.autoBeaming = ##f
+@end example
+
+@noindent
+introduce un ajuste de propiedad en el nivel del contexto @code{Staff}. El ajuste también se aplica
+a la @code{Voice} actual. Sin embargo,
+
+@example
+\unset Voice.autoBeaming
+@end example
+
+@noindent
+no tiene ningún efecto. Para cancelar este ajuste, el @code{\unset}
+se debe especificar en el mismo nivel que el @code{\set} original. En
+otras palabras, deshacer el efecto de @code{Staff.autoBeaming = ##f}
+requiere
+@example
+\unset Staff.autoBeaming
+@end example
+
+Igual que @code{\set}, el argumento @var{contexto} no tiene que especificarse para un contexto
+que está en la parte más baja, por lo que las dos instrucciones
+
+@example
+\set Voice.autoBeaming = ##t
+\set autoBeaming = ##t
+@end example
+
+@noindent
+son equivalentes.
+
+
+@cindex \once
+Los ajustes que se quieren aplicar a un paso de tiempo único se pueden escribir
+con @code{\once}, por ejemplo en
+
+@lilypond[quote,verbatim,relative=2,fragment]
+c4
+\once \set fontSize = #4.7
+c4
+c4
+@end lilypond
+
+la propiedad @code{fontSize} pierde su valor automáticamente después de la segunda
+nota.
+
+En la referencia del programa hay una descripción detallada de todas las propiedades de contexto disponibles,
+véase
+@ifhtml
+@internalsref{Tunable context properties}.
+@end ifhtml
+@ifnothtml
+Traducción @expansion{} propiedades de contexto ajustables.
+@end ifnothtml
@node Adding and removing engravers
@subsection Adding and removing engravers
@node Extending the templates
@section Extending the templates
-UNTRANSLATED NODE: IGNORE ME
-
-@menu
-* Soprano and cello::
-* Four-part SATB vocal score::
-* Building a score from scratch::
+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?
+
+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"
+melodia = \relative c' @{
+ \clef treble
+ \key c \major
+ \time 4/4
+
+ a4 b c d
+@}
+
+texto = \lyricmode @{
+ Aaa Bee Cee Dee
+@}
+
+\score@{
+ <<
+ \new Voice = "uno" @{
+ \autoBeamOff
+ \melodia
+ @}
+ \new Lyrics \lyricsto "uno" \text
+ >>
+ \layout @{ @}
+ \midi @{ @}
+@}
+@end example
+
+Ahora queremos añadir una parte de violoncello. Veamos el ejemplo @q{Sólo notas}:
+
+@example
+\version "2.11.38"
+melodia = \relative c' @{
+ \clef treble
+ \key c \major
+ \time 4/4
+
+ a4 b c d
+@}
+
+\score @{
+\new Staff \melody
+\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.
+
+@example
+\version "2.11.38"
+musicaSoprano = \relative c' @{
+ \clef treble
+ \key c \major
+ \time 4/4
+
+ a4 b c d
+@}
+
+letraSoprano = \lyricmode @{
+ Aaa Bee Cee Dee
+@}
+
+musicaCello = \relative c @{
+ \clef bass
+ \key c \major
+ \time 4/4
+
+ d4 g fis8 e d4
+@}
+
+\score@{
+ <<
+ \new Voice = "uno" @{
+ \autoBeamOff
+ \sopranoMusic
+ @}
+ \new Lyrics \lyricsto "uno" \letraSoprano
+ >>
+ \layout @{ @}
+ \midi @{ @}
+@}
+@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
+
+@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
+
+@example
+\score@{
+ <<
+ <<
+ \new Voice = "uno" @{
+ \autoBeamOff
+ \sopranoMusic
+ @}
+ \new Lyrics \lyricsto "uno" \letraSoprano
+ >>
+ \new Staff \musicaCello
+ >>
+ \layout @{ @}
+ \midi @{ @}
+@}
+@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.
+
+@lilypond[quote,verbatim,ragged-right]
+\version "2.11.38"
+sopranoMusic = \relative c' {
+ \clef treble
+ \key c \major
+ \time 4/4
+
+ a4 b c d
+}
+
+sopranoLyrics = \lyricmode {
+ Aaa Bee Cee Dee
+}
+
+celloMusic = \relative c {
+ \clef bass
+ \key c \major
+ \time 4/4
+
+ d4 g fis8 e d4
+}
+
+\score{
+ <<
+ <<
+ \new Voice = "one" {
+ \autoBeamOff
+ \sopranoMusic
+ }
+ \new Lyrics \lyricsto "one" \sopranoLyrics
+ >>
+ \new Staff \celloMusic
+ >>
+ \layout { }
+ \midi { }
+}
+@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