X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fes%2Fuser%2Ffundamental.itely;h=beb30b964c77b2fde116f5339caf9fa1bd1224df;hb=5c14a087ca6cbd665fd631452b7b1283ba0387c3;hp=e08c948b14c80063bf2028331100c5bb7957f571;hpb=3beeccec13bea6cb1ce4031c9ec52d983066e18f;p=lilypond.git diff --git a/Documentation/es/user/fundamental.itely b/Documentation/es/user/fundamental.itely index e08c948b14..beb30b964c 100644 --- a/Documentation/es/user/fundamental.itely +++ b/Documentation/es/user/fundamental.itely @@ -1,147 +1,2993 @@ @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: 85b54e04be6730bd0781f3135ee741010e099fd8 When revising a translation, copy the HEAD committish of the version that you are working on. See TRANSLATION for details. @end ignore +@c \version "2.11.61" + @node Fundamental concepts @chapter Fundamental concepts -UNTRANSLATED NODE: IGNORE ME +Ha podido ver en el tutorial cómo producir música bellamente impresa a +partir de un simple archivo de texto. Esta sección presenta los +conceptos y técnicas que se requieren para producir partituras +igualmente bellas pero más complejas. -@menu -* How LilyPond files work:: +@menu +* How LilyPond input files work:: * Voices contain music:: * Contexts and engravers:: * Extending the templates:: -@end menu -@node How LilyPond files work -@section How LilyPond files work +@end menu + + +@node How LilyPond input files work +@section How LilyPond input files work -UNTRANSLATED NODE: IGNORE ME +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}. -@menu + +@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 +@end menu + @node Introduction to the LilyPond file structure @subsection Introduction to the LilyPond file structure -UNTRANSLATED NODE: IGNORE ME +@cindex entrada, formato de la +@cindex archivo, estructura del + +Un ejemplo básico de archivo de entrada de LilyPond es el siguiente: + +@example +\version @w{"@version{}"} +\header @{ @} +\score @{ + @var{...expresión musical compuesta...} % toda la música viene aquí + \layout @{ @} + \midi @{ @} +@} +@end example + +@noindent +Existen muchas variaciones de este esquema básico, pero el ejemplo +constituye un útil punto de partida. + +@funindex \book +@funindex book +@funindex \score +@funindex score +@cindex book (libro) +@cindex score (partitura) +@cindex libro +@cindex partitura + +Hasta el momento, ninguno de los ejemplos que ha podido ver utiliza la +instrucción @code{\score@{@}}. Esto es así a causa de que LilyPond +añade automáticamente las órdenes adicionales que se requieren cuando +le proporcionamos una entrada sencilla. LilyPond trata una entrada +como esta: + +@example +\relative c'' @{ + c4 a d c +@} +@end example + +@noindent +como una abreviatura de esta otra: + +@example +\book @{ + \score @{ + \new Staff @{ + \new Voice @{ + \relative c'' @{ + c4 a b c + @} + @} + @} + \layout @{ @} + @} +@} +@end example + +En otras palabras, si la entrada consta de una única expresión +musical, LilyPond interpreta el archivo como si la expresción musical +estuviera rodeada por un envoltorio hecho por las instrucciones que +acabamos de ver. + +@cindex contextos implícitos +@cindex implícitos, contextos + +@strong{¡Advertencia!} Muchos de los ejemplos que aparecen en la +documentación de LilyPond omiten las instrucciones @code{\new Staff} y +@code{\new Voice}, dejando que se creen de forma implícita. Esto +funciona bien para ejemplos sencillos, pero para ejemplos más +complicados, especialmente cuando se usan instrucciones adicionales, +la creación implícita de los contextos puede dar lugar a resultados +inesperados, incluso en ocasiones crear pentagramas no deseados. La +forma de crear contextos de forma explícita se explica en +@ref{Contexts and engravers}. + +@warning{Cuando se escriben más de unas pocas líneas de música, se +recomienda crear siempre los pentagramas y las voces de forma +explícita.} + +De todas formas, por ahora vamos a volver al primer ejemplo para +examinar la instrucción @code{\score}, dejando las demás en su forma +predeterminada. + +Un bloque @code{\score} siempre debe contener una expresión musical +única, que debe aparecer inmediatamente después de la instrucción +@code{\score}. Recuerde que una expresión musical podía ser cualquier +cosa entre una sola nota hasta una enorme expresión compuesta como + +@example +@{ + \new GrandStaff << + @var{...inserte aquí la partitura completa de una ópera de Wagner...} + >> +@} +@end example + +@noindent +Puesto que todo se encuentra dentro de @code{@{ ... @}}, cuenta como +una expresión musical. + +Como vimos anteriormente, el bloque @code{\score} puede contener otras +cosas, tales como + +@example +\score @{ + @{ c'4 a b c' @} + \header @{ @} + \layout @{ @} + \midi @{ @} +@} +@end example + +@funindex \header +@funindex header +@funindex \layout +@funindex layout +@funindex \midi +@funindex midi +@cindex header +@cindex layout +@cindex midi +@cindex cabecera +@cindex disposición + +@noindent +Observe que estas tres instrucciones (@code{\header}, @code{\layout} y +@code{\midi}) son especiales: a diferencia del resto de las +instrucciones que comienzan con una barra invertida (@code{\}), +@emph{no} son expresiones musicales y no forman parte de ninguna +expresión musical. Por tanto, se pueden situar dentro de un bloque +@code{\score} o fuera de él. De hecho, estas instrucciones se sitúan +por lo general fuera del bloque @code{\score} (por ejemplo, +@code{\header} se suele colocar antes de la instrucción @code{\score}, +como muestra el ejemplo que aparece al principio de la sección. + +Dos instrucciones más que no hemos visto aún son @code{\layout @{ @}} +y @code{\midi @{@}}. Si aparecen tal y como se muestran aquí, hacen +que LilyPond produzca una salida impresa y una salida MIDI, +respectivamente. Se describen con todo detalle en el manual de +Referencia de la notación, en @ruser{Score layout} y en +@ruser{Creating MIDI files}. + +@cindex partituras, varias +@cindex book, bloque implícito +@cindex implícito, bloque book +@funindex \book +@funindex book + +Podemos escribir varios bloques @code{\score}. Cada uno de ellos +recibirá el mismo tratamiento que una partitura independiente, pero se +combinarán todos juntos en un archivo de salida único. No se necesita +ninguna instrucción @code{\book}, se creará una implícitamente. Sin +embargo, si quiere archivos de salida separados a partir de un único +archivo @code{.ly}, entonces es necesario utilizar la instrucción +@code{\book} para separar las distintas secciones: cada bloque +@code{\book} produce un archivo de salida distinto. + +En resumen: + +Cada bloque @code{\book} crea un archivo de salida distinto (por +ejemplo, un archivo PDF). Si no hemos escrito uno de forma explícita, +LilyPond envuelve todo nuestro código de entrada dentro de un bloque +@code{\book} de forma implícita.q + +Cada bloque @code{\score} es un trozo de música separado dentro de un +bloque @code{\book}. + +@cindex layout, efecto de la situación del bloque + +Cada bloque @code{\layout} afecta al bloque @code{\score} o +@code{\book} dentro del cual aparece (es decir, un bloque +@code{\layout} dentro de un bloque @code{\score} afecta solamente a +ese bloque @code{\score}, pero un bloque @code{\layout} fuera de un +bloque @code{\score} (que por ello está dentro de un bloque +@code{\book}, ya sea explícita o implícitamente) afecta a los bloques +@code{\score} que están dentro de ese @code{\book}. + +Para ver más detalles, consulte @ruser{Multiple scores in a book}. + +@cindex variables + +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{CompasArmadura}, @code{manoderechadelpiano} o +@code{fulanomengano}). Para ver más detalles, consulte @ref{Saving +typing with variables and functions}. Recuerde que puede usar casi +cualquier nombre que se le ocurra, en la medida en que contenga +solamente caracteres alfabéticos y sea diferente de cualquiera de los +nombres de instrucción de LilyPond. Las limitaciones exactas que +afectan a los nombres de variable se detallan en @ruser{File +structure}. + +@seealso + +Para ver una definición completa del formato del código de entrada, +consulte @ruser{File structure}. @node Score is a (single) compound musical expression @subsection Score is a (single) compound musical expression -UNTRANSLATED NODE: IGNORE ME +@cindex score +@cindex partitura +@cindex contenido del bloque score +@cindex score, contenido del bloque +@cindex compuesta, expresión musical +@cindex musical, expresión, compuesta +@cindex expresión musical compuesta +@funindex \score +@funindex score + +En la sección anterior, @ref{Introduction to the LilyPond file +structure}, hemos podido 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{Un bloque @code{\score} debe comenzar con una expresión musical +compuesta.} +@end quotation + +@noindent +Para comprender lo que se entiende por expresión musical y expresión +musical compuesta, quizá encuentre útil dar un repaso al tutorial, +@ref{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 toda la expresión musical compuesta + \new GrandStaff << + @var{...introduzca aquí la partitura completa de una ópera de Wagner...} + >> + @} % esta llave da por terminada toda 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{>>} en vez de @code{@{ ... @}} +para presentar música simultánea. Y, por supuesto, queremos presentar +las partes vocal y del piano al mismo tiempo, ¡no una después de otra! +Observe que la construcción @code{<< ... >>} no es realmente necesaria +para el pentagrama del cantante (pues contiene una sola expresión +musical); sin embargo, el uso de @code{<< ... >>} en lugar de llaves +sigue siendo necesario si la música que debe ir en el pentagrama está +compuesta por dos expresiones simultáneas, por ejemplo dos voces +simultáneas o una voz con letra. Escribiremos algo de música real más +tarde; por ahora limitémonos a poner algunas notas y letra de relleno. + +@lilypond[verbatim,quote,ragged-right] +\score { + << + \new Staff = "singer" << + \new Voice = "vocal" { c'1 } + \addlyrics { And } + >> + \new PianoStaff = "piano" << + \new Staff = "upper" { c'1 } + \new Staff = "lower" { c'1 } + >> + >> + \layout { } +} +@end lilypond + +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'' @{ + r4 d8\noBeam g, c4 r +@} +@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. Recordará que las vimos por +primera vez en la sección anterior. Así pues, escribiendo algunas +notas, ahora tenemos un fragmento musical de verdad: + +@lilypond[verbatim,quote,ragged-right] +melody = \relative c'' { r4 d8\noBeam g, c4 r } +text = \lyricmode { And God said, } +upper = \relative c'' { 2~ } +lower = \relative c { b2 e2 } + +\score { + << + \new Staff = "singer" << + \new Voice = "vocal" { \melody } + \addlyrics { \text } + >> + \new PianoStaff = "piano" << + \new Staff = "upper" { \upper } + \new Staff = "lower" { + \clef "bass" + \lower + } + >> + >> + \layout { } +} +@end lilypond + +Tenga cuidado con la diferencia entre las notas, que van precedidas de +@code{\relative} o insertadas directamente en la expresión musical, y +la letra, que va precedida de @code{\lyricmode}. Estas instrucciones +son esenciales para decirle a LilyPond que interprete el contenido que +viene a continuación como música y texto, respectivamente. + +Cuando escriba una sección @code{\score} o cuando la esté leyendo, +hágalo despacio y con cuidado. Comience por el nivel exterior y luego +trabaje sobre cada uno de los niveles interiores. También es de gran +ayuda ser muy estricto con los márgenes (asegúrese de que en su editor +de texto cada elemento del mismo nivel comienza en la misma posición +horizontal). + +@seealso + +Referencia de la notación: +@ruser{Structure of a score}. + @node Nesting music expressions @subsection Nesting music expressions -UNTRANSLATED NODE: IGNORE ME +@cindex pentagramas temporales +@cindex temporales, pentagramas +@cindex ossias + +No es esencial declarar todos los pentagramas al comienzo; se pueden +crear temporalmente en cualquier momento. Esto es de especial +utilidad para crear secciones de ossia (véase @rglos{ossia}). A +continuación presentamos un ejemplo sencillo que muestra cómo +introducir temporalmente un pentagrama nuevo mientras dura un +fragmento de tres notas: + +@lilypond[verbatim,quote,ragged-right] +\new Staff { + \relative g' { + r4 g8 g c4 c8 d | + e4 r8 + << + { f c c } + \new Staff { + f8 f c + } + >> + r4 | + } +} +@end lilypond + +@noindent +Advierta que el tamaño de la clave es igual al que se imprime en un +cambio de clave (ligeramente menor que la clave al principio de una +línea). Esto es normal para cualquier clave que se imprime en la +mitad de una línea. + +@cindex pentagrama, posicionado del + +La sección ossia se puede colocar encima del pentagrama de la manera +siguiente: + +@lilypond[verbatim,quote,ragged-right] +\new Staff = "main" { + \relative g' { + r4 g8 g c4 c8 d | + e4 r8 + << + { f c c } + \new Staff \with { + alignAboveContext = "main" } + { f8 f c } + >> + r4 | + } +} +@end lilypond + +Este ejemplo utiliza @code{\with}, que se explica en todo detalle más +adelante. Es un medio de modificar el comportamiento predeterminado +de un solo pentagrama. Aquí, dice que el pentagrama nuevo se debe +colocar por encima del pentagrama llamado @qq{main} en vez de la +posición predeterminada que sería por debajo. + +@seealso + +Los fragmentos de ossia se escriben a menudo sin clave y sin +indicación de compás, y generalmente en un tipo más pequeño. Esto +necesitaría más instrucciones que aún no se han visto. Véase +@ref{Size of objects} y @ruser{Ossia staves}. + -@ @node On the un-nestedness of brackets and ties @subsection On the un-nestedness of brackets and ties -UNTRANSLATED NODE: IGNORE ME +@cindex corchetes y paréntesis, anidado de +@cindex corchetes y paréntesis, tipos de +@cindex corchetes y paréntesis, encerrar frente a marcar +@cindex paréntesis y corchetes, anidado de +@cindex paréntesis y corchetes, tipos de +@cindex paréntesis y corchetes, encerrar frente a marcar + +En la escritura del archivo de entrada de LilyPond, hemos podido ver +algunos tipos de paréntesis, llaves o ángulos de distintos tipos. +Éstos obedecen a distintas reglas que al principio pueden resultar +confusas. Antes de explicar estas reglas, demos un repaso a las +distintas clases de corchetes, llaves y paréntesis. + +@c attempt to force this onto a new page +@need 50 +@multitable @columnfractions .3 .7 +@headitem Tipo de paréntesis + @tab Función +@item @code{@{ .. @}} + @tab Encierra un fragmento secuencial de música +@item @code{< .. >} + @tab Encierra las notas de un acorde +@item @code{<< .. >>} + @tab Encierra expresiones musicales simultáneas +@item @code{( .. )} + @tab Marca el comienzo y el final de una ligadura de expresión +@item @code{\( .. \)} + @tab Marca el comienzo y el final de una ligadura de fraseo +@item @code{[ .. ]} + @tab Marca el comienzo y el final de un barrado manual +@end multitable + +A las anteriores, debemos añadir otras construcciones que generan +líneas entre o a través de las notas: las ligaduras de unión (marcadas +con una tilde curva, @code{~}), los grupos especiales que se escriben +como @code{\times x/y @{..@}}, y las notas de adorno, que se escriben +como @code{\grace@{..@}}. + +Fuera de LilyPond, el uso convencional de los paréntesis y otros +corchetes requiere que los distintos tipos se encuentren anidados +correctamente, como en: @code{<< [ @{ ( .. ) @} ] >>}, de manera que +los paréntesis que se cierran deben encontrarse en el orden +exactamente opuesto al de los paréntesis que se abren. Esto +@strong{es} un requisito para los tres tipos de paréntesis que se +describen mediante la palabra @q{Encierra} en la tabla anterior: se +deben anidar correctamente. Sin embargo, el resto de las llaves y +corchetes, que se encuentran descritos por la palabra @q{Marca} en la +misma tabla anterior, @strong{no} tienen por qué anidarse +estrictamente con ninguno de los otros paréntesis. De hecho, éstos no +son paréntesis en el sentido de que encierran algo: simplemente son +marcadores que indican dónde empieza o finaliza algo. + +Así pues, por ejemplo, una ligadura de fraseo puede dar comienzo +antes de una barra insertada manualmente, y acabar antes de que acabe +la barra (algo que quizá no sea muy musical, pero es posible): + +@lilypond[quote,verbatim,fragment,ragged-right,relative=2] + { g8\( a b[ c b\) a] } +@end lilypond + +En general, los distintos tipos de corchete, y los implicados en +grupos especiales, ligaduras de unión y notas de adorno, se pueden +mezclar con total libertad. Este ejemplo muestra una barra que se +extiende hacia el interior de un grupo de valoración especial (línea +1), una ligadura de expresión que se prolonga hasta el interior de un +grupo especial (línea 2), una barra y una ligadura de expresión que se +prolongan hasta el interior de un grupo especial, una ligadura de +unión que atraviesa dos grupos especiales, y una ligadura de fraseo +que sale del interior de un grupo especial (líneas 3 y 4). + +@lilypond[quote,verbatim,fragment,ragged-right] +{ + r16[ g16 \times 2/3 {r16 e'8] } + g16( a \times 2/3 {b d) e' } + g8[( a \times 2/3 {b d') e'~]} + \times 4/5 {e'32\( a b d' e'} a'4.\) +} +@end lilypond + @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 +@menu * I'm hearing Voices:: * Explicitly instantiating voices:: * Voices and vocals:: -@end menu +@end menu + @node I'm hearing Voices @subsection I'm hearing Voices -UNTRANSLATED NODE: IGNORE ME +@cindex polifonía +@cindex capas +@cindex varias voces +@cindex voces, varias +@cindex Voice (voz), contexto de +@cindex contexto Voice (de voz) +@cindex simultánea, música +@cindex concurrente, música +@cindex voces frente a acordes +@cindex acordes frente a voces + +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 hecho, 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 +4 +@end lilypond + +Esto se puede expresar utilizando 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 en secuencia 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 más 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 anteriores 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 + +@cindex voces, nombrado de +@cindex voces que cruzan corchetes +@cindex ligaduras que cruzan corchetes + +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 más +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 +paralelas 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én 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 + +@funindex \voiceOneStyle +@funindex \voiceTwoStyle +@funindex \voiceThreeStyle +@funindex \voiceFourStyle +@funindex \voiceNeutralStyle + +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. @code{\voiceNeutralStyle} (que +tampoco se usa aquí) devuelve todo al estilo predeterminado. Veremos +más adelante cómo el usuario puede crear instrucciones como éstas. +Véase @ref{Visibility and color of objects} y @ref{Using variables for +tweaks}. + +@cindex polifonía y modo relativo +@cindex relativo, modo, polifonía y + +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 acorde 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 +misterioso 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 + 2 + \once \override NoteColumn #'force-hshift = #0.5 + des2 + } + >> | + 1 | +} +@end lilypond + +Con frecuencia, la dirección de las plicas se utiliza 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 notas 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 + 2 + \once \override NoteColumn #'force-hshift = #0.5 + des2 + } + >> | + 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 } \\ { 2 des2 } + >> + 1 +} +@end lilypond + +@cindex plica abajo +@cindex voces y dirección de las plicas +@cindex plicas, voces y dirección de las +@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 +fragmento 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 + { 2 des2 } + >> | + 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 +@code{force-hshift} en @ref{Fixing overlapping notation}). + +@seealso + +Referencia de la notación: +@ruser{Multiple voices}. + @node Explicitly instantiating voices @subsection Explicitly instantiating voices -UNTRANSLATED NODE: IGNORE ME + +@funindex \voiceOne +@funindex voiceOne +@funindex \voiceTwo +@funindex voiceTwo +@funindex \voiceThree +@funindex voiceThree +@funindex \voiceFour +@funindex voiceFour +@funindex \oneVoice +@funindex oneVoice +@funindex \new Voice +@cindex contextos de voz, creación de + +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 + +@cindex voces, retorno a única +@cindex retorno a voz única + +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 +desplazamiento 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 + +A continuación veremos tres formas distintas de componer la notación +del mismo pasaje polifónico, cada una de las cuales tiene sus ventajas +según la circunstancia, utilizando el ejemplo de la sección anterior. + +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 útil 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 +@cindex anidado de voces +@cindex voces temporales +@cindex voces, anidado de + +Son 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 + +@cindex espaciadoras, notas + +Este método de anidar voces nuevas brevemente es útil cuando sólo hay +secciones polifónicas pequeñas, pero cuando todo el pentagrama es muy +polifó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 + +@subsubheading Note columns + +@cindex columna de notas +@cindex colisiones de notas +@cindex notas, colisiones de +@cindex desplazamiento, instrucciones de +@funindex \shiftOff +@funindex shiftOff +@funindex \shiftOn +@funindex shiftOn +@funindex \shiftOnn +@funindex shiftOnn +@funindex \shiftOnnn +@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 +aplica a la columna de la nota si en caso contrario 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 +notas y acordes de la voz si en caso contrario ocurriese una +colisión. De forma predeterminada, las voces exteriores (normalmente +las voces uno y dos) llevan 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 pueden especificar temporalmente para resolver +colisiones en situaciones complejas (véase @ref{Real music example}). + +Una columna de notas puede contener sólo 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}. + +@seealso + +Referencia de la notación: +@ruser{Multiple voices}. + @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. + +@funindex \new Lyrics +@funindex \lyricsto +@funindex lyricsto +@funindex Lyrics +@cindex Lyrics, creación de un contexto +@cindex letra, creación de un contexto de +@cindex letra, enlazar con una voz + +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 + +Observe que la letra se debe enlazar a un contexto de @code{Voice}, +@emph{no} a un contexto de @code{Staff}. Este es un caso en que es +necesario crear contextos de @code{Staff} y de @code{Voice} +explícitamente. + +@cindex letra y barrado +@cindex barrado y letra +@funindex \autoBeamOff +@funindex autoBeamOff + +El barrado automático que LilyPond usa de forma predeterminada +funciona bien para la música instrumental, pero no tan bien para +música con letra, donde o bien el barrado no se necesita en absoluto, +o bien se utiliza para indicar los melismas de la letra. En el +ejemplo anterior hemos utilizado la instrucción @code{\autoBeamOff} +para desactivar el barrado automático. + +@funindex \new ChoirStaff +@funindex ChoirStaff +@funindex \lyricmode +@funindex lyricmode +@cindex vocal, estructura de una partitura +@cindex coro, sistema de + +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. + +@cindex himno, estructura de +@cindex SATB, estructura de +@cindex vocal, partitura, varias estrofas +@cindex varias estrofas vocales +@cindex estrofas, varias, vocales + +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. Observe cómo utilizamos variables para +separar la notación musical de la estructura de pentagramas. Observe +también cómo se utiliza una variable, para la que hemos elegido el +nombre @q{TimeKey} («compás y tonalidad»), para que contenga varias +instrucciones que se usarán dentro de los dos pentagramas. En otros +ejemplos se le suele dar el nombre de @q{global}. + + + +@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 + +@cindex estrofa y estribillo + +Finalizamos con un ejemplo que muestra cómo podemos codificar una +estrofa para solista seguida de un estribillo en dos partes sobre dos +pentagramas. El posicionado de las secciones secuencial y simultánea +para conseguirlo dentro de una sola partitura es un poco enrevesado, +por tanto siga esta explicación con todo cuidado. + +Comenzamos el ejemplo con un bloque de partitura que contiene un +@code{ChoirStaff}, pues queremos que aparezca un corchete al comienzo +de la parte de coro. Normalmente necesitaríamos dobles ángulos +después de @code{\new ChoirStaff} para meter dentro todos los +pentagramas en paralelo, pero aquí queremos postponer el paralelismo +mientras dura el solo y por ello usaremos llaves, aunque aquí unos +ángulos dobles no harían daño. Dentro del @code{ChoirStaff} queremos +en primer lugar el pentagrama que va a contener la estrofa. Debe +contener notas y letra en paralelo, así que necesitamos dobles ángulos +encerrando el @code{\new Voice} y el @code{\new Lyrics} para que den +comienzo al mismo tiempo: + +@lilypond[quote,verbatim,ragged-right] +versenotes = \relative c'' { + \clef "treble" + \key g \major + \time 3/4 g g g b b b +} +versewords = \lyricmode { + One two three four five six +} +\score { + \new Choirstaff { + \new Staff << + \new Voice = "verse" { + \versenotes \break + } + \new Lyrics \lyricsto verse { + \versewords + } + >> + } +} +@end lilypond + +Con esto tenemos la línea de la estrofa. + +Ahora deseamos continuar con refrainA (la primera parte del +estribillo) sobre el mismo pentagrama, mientras un segundo pentagrama +aparece en paralelo con él para refrainB (estribillo, segunda parte), +por lo que ésta es una sección paralela que se debe situar +inmediatamente a continuación del salto de línea @code{\break} en la +voz de la estrofa. ¡Sí, @emph{dentro} de la voz de la estrofa! He +aquí dicha sección paralela. Se podrían introducir más pentagramas de +la misma forma. + +@example +<< + \refrainnotesA + \new Lyrics \lyricsto verse @{ + \refrainwordsA + @} + \new Staff << + \new Voice = "refrainB" @{ + \refrainnotesB + @} + \new Lyrics \lyricsto "refrainB" @{ + \refrainwordsB + @} + >> +>> +@end example + +Aquí tenemos el resultado final con dos pentagramas en el estribillo +mostrando cómo la sección paralela se posiciona dentro de la voz de la +estrofa: + +@lilypond[quote,verbatim, ragged-right] +versenotes = \relative c'' { + \clef "treble" + \key g \major + \time 3/4 g g g b b b +} +refrainnotesA = \relative c'' { + \time 2/4 + c c g g \bar "|." +} +refrainnotesB = \relative c { + \clef "bass" + \key g \major + c e d d +} +versewords = \lyricmode { + One two three four five six +} +refrainwordsA = \lyricmode { + la la la la +} +refrainwordsB = \lyricmode { + dum dum dum dum +} +\score { + \new ChoirStaff { + \new Staff << + \context Voice = "verse" { + \versenotes \break + << + \refrainnotesA + \new Lyrics \lyricsto "verse" { + \refrainwordsA + } + \new Staff << + \new Voice = "refrainB" { + \refrainnotesB + } + \new Lyrics \lyricsto "refrainB" { + \refrainwordsB + } + >> + >> + } + \new Lyrics \lyricsto "verse" { + \versewords + } + >> + } +} +@end lilypond + +@cindex libro +@cindex book, ejemplo de su uso +@funindex \book +@funindex book + +Sin embargo, y aunque esto es un interesante y útil ejercicio +destinado a ayudarle a comprender cómo funcionan los bloques +secuenciales y simultáneos, en la práctica quizá nos decidiríamos por +codificarlo como dos bloques @code{\score} dentro de un bloque +@code{\book} implícito, como sigue: + +@lilypond[quote,verbatim,ragged-right] +versenotes = \relative c'' { + \clef "treble" + \key g \major + \time 3/4 g g g b b b +} +refrainnotesA = \relative c'' { + \time 2/4 + c c g g \bar "|." +} +refrainnotesB = \relative c { + \clef "bass" + \key g \major + c e d d +} +versewords = \lyricmode { + One two three four five six +} +refrainwordsA = \lyricmode { + la la la la +} +refrainwordsB = \lyricmode { + dum dum dum dum +} +\score { + \new Staff << + \new Voice = "verse" { + \versenotes + } + \new Lyrics \lyricsto "verse" { + \versewords + } + >> +} + +\score { + \new ChoirStaff << + \new Staff << + \new Voice = "refrainA" { + \refrainnotesA + } + \new Lyrics \lyricsto "refrainA" { + \refrainwordsA + } + >> + \new Staff << + \new Voice = "refrainB" { + \refrainnotesB + } + \new Lyrics \lyricsto "refrainB" { + \refrainwordsB + } + >> + >> +} +@end lilypond + +@seealso + +Referencia de la notación: +@ruser{Vocal music}. + @node Contexts and engravers @section Contexts and engravers -UNTRANSLATED NODE: IGNORE ME +Los contextos y grabadores se han mencionado de manera informal en +secciones anteriores; 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 +@menu * Contexts explained:: * Creating contexts:: * Engravers explained:: * Modifying context properties:: * Adding and removing engravers:: -@end menu +@end menu + @node Contexts explained @subsection Contexts explained -UNTRANSLATED NODE: IGNORE ME +@cindex contextos, explicación de los + +Cuando se imprime la música, se tienen que añadir a la salida una gran +cantidad de elementos notacionales que no aparecen explícitamente en +el archivo de entrada. 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, de forma que reflejan la +naturaleza jerárquica de una partitura musical. Por ejemplo: un +contexto de @code{Staff} contener muchos contextos de @code{Voice}, y +un contexto de @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. + +Otro ejemplo lo constituye el hecho de que la sincronización de las +líneas divisorias se gestiona dentro del contexto de la partitura, +@code{Score}, de forma predeterminada. Sin embargo, en algunas +músicas posiblemente no queramos que las líneas divisorias estén +sincronizadas (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, +es frecuente la modificación de contextos existentes o incluso definir +unos completamente nuevos. + + +Además de los contextos @code{Score,} @code{Staff} y @code{Voice}, hay +contextos que se sitúan entre los niveles de partitura y de pentagrama +para controlar los grupos de pentagraamas, como los contextos +@code{PianoStaff} y @code{ChoirStaff}. También existen contextos +alternativos de pentagrama y de voz, y contextos para la letra, la +percusión, diagramas de trastes, bajo cifrado, etc. + +Los nombres de todos los tipos de contextos se componen de una o más +palabras que comienzan con mayúscula y que están unidas unas a otras +sin guión ni barra baja, por ejemplo: +@code{GregorianTranscriptionStaff}. + +@seealso + +Referencia de la notación: +@ruser{Contexts explained}. @node Creating contexts @subsection Creating contexts -UNTRANSLATED NODE: IGNORE ME +@funindex \new +@funindex new +@cindex nuevos contextos +@cindex creación de contextos +@cindex contextos, creación de + +Sólo puede haber un contexto en el nivel más alto: el contexto de +partitura @code{Score}. Se crea con la instrucción @code{\score} o, +en partituras sencillas, se crea automáticamente. + +Para partituras que solamente tienen una voz y un pentagrama, podemos +dejar que los contextos @code{Voice} y @code{Staff} se creen +automáticamente, pero para partituras más complejas es necesario +crearlos a mano. La instrucción más simple que hace esto es +@code{\new}. Se antepone a una expresión musical, por ejemplo + +@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 comienza a +interpretar la @var{expresión_musical} que está dentro de ese +contexto. + +Observe que no hay ninguna instrucción @code{\new Score}; el contexto +@code{Score} único en el nivel más alto se introduce con +@code{\score}. + + +En las secciones anteriore ha podido ver muchos ejemplos prácticos que +creaban nuevos contextos de @code{Staff} y de @code{Voice}, pero para +recordarle cómo se emplean estas instrucciones en la práctica, he aquí +un ejemplo anotado de música real: + +@lilypond[quote,verbatim,ragged-right] +\score { % start of single compound music expression + << % start of simultaneous staves section + \time 2/4 + \new Staff { % create RH staff + \key g \minor + \clef "treble" + \new Voice { % create voice for RH notes + \relative c'' { % start of RH notes + d4 ees16 c8. | + d4 ees16 c8. | + } % end of RH notes + } % end of RH voice + } % end of RH staff + \new Staff << % create LH staff; needs two simultaneous voices + \key g \minor + \clef "bass" + \new Voice { % create LH voice one + \voiceOne + \relative g { % start of LH voice one notes + g8 ees, | + g8 ees, | + } % end of LH voice one notes + } % end of LH voice one + \new Voice { % create LH voice two + \voiceTwo + \relative g { % start of LH voice two notes + g4 ees | + g4 ees | + } % end of LH voice two notes + } % end of LH voice two + >> % end of LH staff + >> % end of simultaneous staves section +} % end of single compound music expression +@end lilypond + +(Observe cómo todas las instrucciones que abren un bloque con una +llave curva, @code{@{}, o con ángulos dobles, @code{<<}, están +sangrados (tienen un margen adicional) con dos espacios adicionales, y +la llave de cierre correspondiente tiene un margen exactamente igual. +Aunque no es necesario, la observancia de esta práctica reducirá +considerablemente el número de errores de @q{paréntesis +descompensados}, y se recomienda vivamente. Permite apreciar de un +solo vistazo la estructura de la música, y cualquier paréntesis +descompensado aprecerá con obviedad. Observe también cómo el +pentagrama de la MI se crea usando dobles ángulos porque requiere dos +voces, mientras que el pentagrama de la MD se crea con una expresión +musical única encerrada entre llaves porque sólo requiere una voz.) + + +@cindex contextos, nombrado +@cindex nombrar contextos + +La instrucción @code{\new} también puede otorgar un nombre +identificativo al contexto para distinguirlo de otros contextos del +mismo tipo: + +@example +\new @var{tipo} = @var{identificador} @var{expresión_musical} +@end example + +Observe la distinción entre el nombre del tipo de contexto, +@code{Staff}, @code{Voice}, etc., y el nombre identificativo de una +instancia en particular de ese tipo, que puede ser cualquier secuencia +de letras inventada por el usuario. En el nombre identificativo +también se pueden utilizar dígitos y espacios, pero en este caso aquél +debe ir entre comillas p.ej. @code{\new Staff = "MiPentagrama 1" +@var{expresión_musical}}. El nombre identificativo se utiliza para +referirnos más tarde a esa instancia en particular de un contexto. +Hemos visto esto en la sección acerca de la letra, en @ref{Voices and +vocals}. + +@seealso + +Referencia de la notación: +@ruser{Creating contexts}. + @node Engravers explained @subsection Engravers explained -UNTRANSLATED NODE: IGNORE ME +@cindex grabadores + +Todas y cada una de las marcas de la salida impresa de una partitura +hecha con LilyPond está producida por un @code{Engraver} (grabador). +Así, tenemos un grabador para imprimir pentagramas, otro para imprimir +las cabezas de las notas, otro para las plicas, otro para las barras, +etc, etc. ¡En total hay más de 120 grabadores! Afortunadamente, para +la mayor parte de las partituras no es necesario conocer más que +algunos, y para partituras sencillas no tenemos que saber nada de +ninguno de ellos. + +Los grabadores residen y operan dentro de Contextos. Los grabadores +como el grabador de la indicación metronómica, +@code{Metronome_mark_engraver}, cuya acción y resultado se aplican a +la partitura como un todo, operan en el contexto del nivel más alto: +el contexto de partitura @code{Score}. + +El grabador de la clave @code{Clef_engraver} y el de la armadura +@code{Key_engraver} se encuentran probablemente en todos los contextos +de pentagrama (@code{Staff}), pues los distintos pentagramas podrían +requerir diferentes claves y armaduras. + +El grabador de las cabezas de nota @code{Note_heads_engraver} y el de +las plicas @code{Stem_engraver} viven en cada uno de los contextos de +voz @code{Voice}, el contexto de nivel más bajo de todos. + +Cada grabador procesa los objetos particulares asociados con su +función, y mantiene las propiedades que están relacionadas con dicha +función. Estas propiedades, como las que están asociadas con los +contextos, se pueden modificar para cambiar el funcionamiento del +grabador o el aspecto de esos elementos en la partitura impresa. + +Todos los grabadores tienen nombres compuestos de varias palabras que +describen su función. Sólo está en mayúsculas la inicial de la +primera palabra, y el resto se le une mediante guiones bajos. Así, el +grabador @code{Staff_symbol_engraver} es responsable de la creación de +las líneas del pentagrama, y el @code{Clef_engraver} determina y +establece la altura o el punto de referencia sobre el pentagrama +dibujando un símbolo de clave. + +A continuación presentamos algunos de los grabadores más comunes, +junto a su función. Podrá comprobar que es fácil adivinar la función +a partir del nombre (en inglés), y viceversa. + +@multitable @columnfractions .3 .7 +@headitem Grabador + @tab Función +@item Accidental_engraver + @tab Hace las alteraciones accidentales, de precaución y de sugerencia. +@item Beam_engraver + @tab Graba las barras +@item Clef_engraver + @tab Graba las claves +@item Completion_heads_engraver + @tab Splits notes which cross bar lines +@c The old Dynamic_engraver is deprecated. -jm +@item New_dynamic_engraver + @tab Crea reguladores e indicaciones dinámicas textuales +@item Forbid_line_break_engraver + @tab Prevents line breaks if a musical element is still active +@item Key_engraver + @tab Crea la armadura de la tonalidad +@item Metronome_mark_engraver + @tab Graba la indicación metronómica +@item Note_heads_engraver + @tab Graba la cabeza de las notas +@item Rest_engraver + @tab Graba los silencios +@item Staff_symbol_engraver + @tab Graba las cinco líneas (de forma predeterminada) del pentagrama +@item Stem_engraver + @tab Crea las plicas y los trémolos de una sola plica +@item Time_signature_engraver + @tab Crea las indicaciones de compás +@end multitable + +@smallspace + +Más adelante veremos cómo la salida de LilyPond se puede cambiar +mediante la modificación del funcionamiento de los Grabadores. + +@seealso + +Referencia de funcionamiento interno: +@rinternals{Engravers and Performers}. + @node Modifying context properties @subsection Modifying context properties -UNTRANSLATED NODE: IGNORE ME +@cindex contexto, propiedades de +@cindex contexto, propiedades de, modificación +@cindex modificar las propiedades de contexto +@funindex \set +@funindex set +@funindex \unset +@funindex unset + +Los contextos se responsabilizan de mantener los valores de un cierto +número de @emph{properties} de contexto. Muchas de ellas se pueden +cambiar para influir en la interpretación del código de entrada y +cambiar así la apariencia de la salida impresa. Se modifican mediante +la instrucción @code{\set}. Esta instrucción toma la forma siguiente: + +@example +\set @emph{NombreDelContexto}.@emph{nombreDeLaPropiedad} = #@emph{valor} +@end example + +Donde el @emph{NombreDelContexto} es normalmente @code{Score}, +@code{Staff} o @code{Voice}. Se puede omitir, en cuyo caso se supone +que es @code{Voice}. + +Los nombres de las propiedades de contexto consisten en palabras +unidas sin ningún guión o barra baja, y donde todas las palabras +excepto la primera empiezan en mayúscula. A continuación podemos ver +algunos ejemplos de nombres de propiedades utilizadas con frecuencia. +Hay muchas más que las que se muestran aquí. + +@c attempt to force this onto a new page +@need 50 +@multitable @columnfractions .25 .15 .45 .15 +@headitem nombreDeLaPropiedad + @tab Tipo + @tab Función + @tab Valor de ejemplo +@item extraNatural + @tab Booleano + @tab Si es verdadero, poner becuadros adicionales antes de las alteraciones + @tab @code{#t}, @code{#f} +@item currentBarNumber + @tab Entero + @tab Ajustar el número del compás actual + @tab @code{50} +@item doubleSlurs + @tab Booleano + @tab Si es verdadero, imprimir ligaduras de expresión por encima y por debajo de las notas + @tab @code{#t}, @code{#f} +@item instrumentName + @tab Texto + @tab Establecer el nombre del pentagrama, situado a la izquierda + @tab @code{"Cello I"} +@item fontSize + @tab Real + @tab Aumentar o disminuir el tamaño de la fuente tipográfica + @tab @code{2.4} +@item stanza + @tab Texto + @tab Establecer el texto que se imprime antes del comienzo de una estrofa + @tab @code{"2"} +@end multitable + +@noindent +donde un valor Booleano es verdadero (@code{#t}, True) o falso +(@code{#f}, False), un Entero es un número entero positivo, un número +Real es un número decimal positivo o negativo, y el texto se encierra +entre comillas dobles. Observe la aparición de signos de cuadradillo, +(@code{#}), en dos lugares diferentes: como parte del valor Booleano +antes de la @code{t} o la @code{f}, y antes del @emph{valor} dentro de +la sentencia @code{\set}. Así pues, cuando se está escribiendo un +valor Booleano, hay que escribir dos signos de cuadradillo, por +ejemplo: @code{##t}. + +@cindex propiedades que funcionan en contextos +@cindex establecer propiedades en contextos + +Antes de poder establecer cualquiera de estas propiedades, tenemos que +saber en qué contexto operan. A veces es algo obvio, pero en +ocasiones puede ser algo enrevesado. Si especificamos un contexto +equivocado, no se produce ningún mensaje de error, pero el +funcionamiento esperado no tendrá lugar. Por ejemplo, la propiedad +@code{instrumentName} (nombre del instrumento) vive claramente dentro +del contexto de @code{Staff}, puesto que es el pentagrama el que debe +ser nombrado. En este ejemplo, el primer pentagrama resulta +etiquetado, pero no el segundo, porque hemos omitido el nombre del +contexto. + +@lilypond[quote,verbatim,ragged-right] +<< + \new Staff \relative c'' { + \set Staff.instrumentName = #"Soprano" + c4 c + } + \new Staff \relative c' { + \set instrumentName = #"Alto" % Wrong! + d4 d + } +>> +@end lilypond + +Recuerde que el nombre del contexto predeterminado es @code{Voice}, +así que la segunda instrucción @code{\set} establece la propiedad +@code{instrumentName} del contexto @code{Voice} a @qq{Alto}, pero como +LilyPond no busca esta propiedad en el contexto @code{Voice}, no se +realiza ninguna acción. Esto no es un error, y no se registra ningún +mensaje en el archivo Log de registro de errores. + +De forma parecida, si el nombre de la propiedad se escribe con alguna +falta, no se produce ningún mensaje de error, y claramente la acción +esperada no puede tener lugar. De hecho, se puede establecer +cualquier @q{property} (ficticia) usando cualquier nombre que queramos +en cualquier contexto que exista, mediante el uso de la instrucción +@code{\set}. Pero si el nombre no es conocido para LilyPond, no +producirá ninguna acción. Algunos editores de texto que apoyan a los +archivos de entrada de LilyPond de manera especial, documentan los +nombres de propiedades con viñetas cuando psamos sobre ellos con el +puntero del ratón, como JEdit con la extensión LilyPondTool, o +resaltan los nombres de propiedades desconocidas de manera diferente, +como ConTEXT. Si no se utiliza un editor con tales posibilidades, se +recomienda comprobar la corrección del nombre de la propiedad en el +manual de Referencia de funcionamiento interno: véase +@rinternals{Tunable context properties} o @rinternals{Contexts}. + +La propiedad @code{instrumentName} tendrá efecto solamente si se +establece dentro del contexto @code{Staff}, pero algunas propiedades +se pueden establecer en más de un contexto. Por ejemplo, la propiedad +@code{extraNatural} está establecida por defecto al valor @code{##t} +(verdadero) para todos los pentagramas. Si se establece a @code{##f} +(falso) en un contexto de @code{Staff} determinado, se aplicará +solamente a las alteraciones de ese pentagrama. Si se establece a +falso en el contexto de la partitura, @code{Score}, se aplicará a +todos los pentagramas. + +Así, esto desactivará los becuadros adicionales en un pentagrama: + +@lilypond[quote,verbatim,ragged-right] +<< + \new Staff \relative c'' { + ais4 aes + } + \new Staff \relative c'' { + \set Staff.extraNatural = ##f + ais4 aes + } +>> +@end lilypond + +@noindent +y esto los desactivará en todos los pentagramas: + +@lilypond[quote,verbatim,ragged-right] +<< + \new Staff \relative c'' { + ais4 aes + } + \new Staff \relative c'' { + \set Score.extraNatural = ##f + ais4 aes + } +>> +@end lilypond + +Como un ejemplo más, si se establece @code{clefOctavation} dentro del +contexto de @code{Score}, éste cambia inmediatamente el valor de la +octavación en todos los pentagramas en curso y establece un nuevo +valor predeterminado que se aplicará a todos los pentagramas. + +La instrucción opuesta, @code{\unset}, tiene el efecto de suprimir la +propiedad del contexto, lo que ocasiona que la mayoría de las +porpiedades vuelvan a su valor predeterminado. Normalmente no es +necesario el uso de @code{\unset}, pues una nueva instrucción +@code{\set} hará el ajuste deseado. + +Las instrucciones @code{\set} y @code{\unset} pueden aparecer en +cualquier lugar del archivo de entrada y tendrán efecto a partir del +tiempo en que se encuentran y hasta el final de la partitura o hasta +que la propiedad se establezca de nuevo mediante @code{\set} o +@code{\unset}. Probemos a modificar el tamaño de la fuente +tipográfica, lo que afecta al tamaño de las cabezas de las notas +(entre otras cosas) varias veces. El cambio se toma a partir del +valor predeterminado, no el valor en curso. + +@lilypond[quote,verbatim,ragged-right,relative=1,fragment] +c4 +% make note heads smaller +\set fontSize = #-4 +d e +% make note heads larger +\set fontSize = #2.5 +f g +% return to original size +\unset fontSize +a b +@end lilypond + +Hemos podido ver cómo establecer los valores de diversos tipos de +propiedad diferentes. Observe que los números enteros y reales van +siempre precedidos de un símbolo de cuadradillo, @code{#}, mientras +que un valor booleano verdadero o falso se especifica mediante +@code{##t} y @code{##f}, con dos cuadradillos. Una propiedad de texto +se debe encerrar entre comillas dobles, como antes, aunque veremos más +adelante que el texto realmente se puede especificar de una forma +mucho más general utilizando la potentísima instrucción @code{markup}. + +@unnumberedsubsubsec Setting context properties with @code{\with} + +@funindex \with +@funindex with +@cindex contexto, propiedades de, establecimiento con \with + +Las propiedades de contexto también se pueden establecer en el momento +en que se crea el contexto. A veces esta forma de establecer el valor +de una propiedad es mucho más clara, si ha de quedar fijo durante todo +el tiempo que dure el contexto. Cuando se crea un contexto con una +instrucción @code{\new} puede ir inmediatamente seguido de un bloque +@code{\with @{ .. @}} en el que se establecen los valores de las +propiedades. Por ejemplo, si queremos suprimir la impresión de +becuadros adicionales para toda la duración de un pentagrama, podemos +escribir: + +@example +\new Staff \with @{ extraNatural = ##f @} +@end example + +@noindent +de la siguiente forma: + +@lilypond[quote,verbatim,ragged-right] +<< + \new Staff + \relative c'' { + gis ges aes ais + } + \new Staff \with { extraNatural = ##f } + \relative c'' { + gis ges aes ais + } +>> +@end lilypond + +Las propiedades ajustadas de esta manera aún pueden cambiarse +dinámicamente utilizando @code{\set} y ser devueltas a sus valores +predeterminados mediante @code{\unset}. + +@cindex fontSize (tamaño de la tipografía) +@cindex fuente, tamaño de la +@cindex tamaño de la fuente + +La propiedad @code{fontSize} se trata de forma distinta. Si se ajusta +dentro de una cláusula @code{\with}, tiene el efecto de reiniciar el +valor predeterminado del tamaño de la fuente tipográfica. Si más +tarde se modifica con @code{\set}, este nuevo valor predeterminado +puede restablecerse con la instrucción @code{\unset fontSize}. + +@unnumberedsubsubsec Setting context properties with @code{\context} + +@cindex contextos, establecer propiedades de, con \context +@funindex \context +@funindex context + +Los valores de propiedad de los contextos se pueden establecer para +@emph{todos} los contextos de un tipo determinado, como por ejemplo +todos los contextos de @code{Staff}, con una única instrucción. El +tipo de contexto se identifica mediante la utilización del nombre de +su tipo, como @code{Staff}, precedido de una barra invertida: +@code{\Staff}. El enunciado que establece el valor de la propiedad es +el mismo que el que está en un bloque @code{\with}, presentado +anteriormente. Se coloca en un bloque @code{\context} dentro de un +bloque @code{\layout}. Cada bloque @code{\context} afecta a todos los +contextos del tipo especificado a lo largo del bloque @code{\score} o +@code{\book} en el que aparece el bloque @code{\layout}. A +continuación presentamos un ejemplo que muestra el formato: + +@lilypond[verbatim,quote] +\score { + \new Staff { + \relative c'' { + cis4 e d ces + } + } + \layout { + \context { + \Staff + extraNatural = ##t + } + } +} +@end lilypond + +@noindent +Las propiedades de contexto establecidas de esta forma se pueden +sobreescribir para ejemplares concretos de contextos mediante +enunciados dentro de un bloque @code{\with}, y mediante instrucciones +@code{\set} intercaladas dentro de enunciados musicales. + +@seealso + +Referencia de la notación: +@ruser{Changing context default settings}. +@c FIXME +@c uncomment when backslash-node-name issue is resolved -pm +@c @ruser{The set command}. + +Referencia de funcionamiento interno: +@rinternals{Contexts}, +@rinternals{Tunable context properties}. + @node Adding and removing engravers @subsection Adding and removing engravers -UNTRANSLATED NODE: IGNORE ME +@cindex grabadores, adición +@cindex grabadores, eliminación +@cindex adición de grabadores +@cindex eliminación de grabadores + +@funindex \consists +@funindex consists +@funindex \remove +@funindex remove + +Hemos visto que cada uno de los contextos contiene varios grabadores, +cada uno de los cuales a su vez es responsable de la producción de una +fracción particular del resultado impreso, como líneas divisorias, +pentagramas, cabezas, plicas, etc. Si un grabador es eliminado de un +contexto, ya no podrá producir su salida impresa. Es una forma algo +radical de modificar la salida, pero a veces puede ser útil. + +@subsubheading Changing a single context + +Para eliminar un grabador de un contexto único, usamos la instrucción +@code{\with} situada inmediatamente después de la instrucción que crea +el contexto, como en la sección anterior. + +Como ilustración, repitamos un ejemplo extraído de la sección anterior +con las líneas del pentagrama eliminadas. Recuerde que las líneas del +pentagrama están dibujadas por el grabador +@code{Staff_symbol_engraver}. + +@lilypond[quote,verbatim,ragged-right] +\new Staff \with { + \remove Staff_symbol_engraver +} +\relative c' { + c4 + \set fontSize = #-4 % make note heads smaller + d e + \set fontSize = #2.5 % make note heads larger + f g + \unset fontSize % return to default size + a b +} +@end lilypond + +@cindex ámbito, grabador del + +Los grabadores también se pueden añadir a los contextos individuales +La instrucción que lo hace es + +@code{\consists @var{Nombre_del_grabador}}, + +situada dentro de un bloque @code{\with}. Ciertas partituras vocales +tienen una indicación de ámbito o tesitura situada al principio del +pentagrama para indicar el ámbito de notas en dicho pentagrama, véase +@rglos{ambitus}. El ambitus se produce por parte del grabador +@code{Ambitus_engraver}, que normalmente no está incluido en ningún +contexto. Si lo añadimos al contexto @code{Voice}, calcula el rango a +partir de esa única voz: + +@lilypond[quote,verbatim,ragged-right] +\new Staff << + \new Voice \with { + \consists Ambitus_engraver + } + \relative c'' { + \voiceOne + c a b g + } + \new Voice + \relative c' { + \voiceTwo + c e d f + } +>> +@end lilypond + +@noindent +pero si añadimos el grabador de ámbito al contexto de @code{Staff}, +calcula el rango de todas las notas en todas las voces de ese +pentagrama: + +@lilypond[quote,verbatim,ragged-right] +\new Staff \with { + \consists Ambitus_engraver + } + << + \new Voice + \relative c'' { + \voiceOne + c a b g + } + \new Voice + \relative c' { + \voiceTwo + c e d f + } +>> +@end lilypond + +@subsubheading Changing all contexts of the same type + +@funindex \layout +@funindex layout + +Los ejemplos anteriores muestran la manera de eliminar o añadir +grabadores a los contextos individuales. También es posible eliminar +o añadir grabadores a todos los contextos de un tipo específico, +situando las instrucciones en el contexto correspondiente dentro de un +bloque @code{\layout}. Por ejemplo, si queremos mostrar los rangos de +tesitura para todos los pentagramas de una partitura de cuatro pautas, +podemos escribir + +@lilypond[quote,verbatim,ragged-right] +\score { + << + \new Staff << + \relative c'' { c a b g } + >> + \new Staff << + \relative c' { c a b g } + >> + \new Staff << + \clef "G_8" + \relative c' { c a b g } + >> + \new Staff << + \clef "bass" + \relative c { c a b g } + >> + >> + \layout { + \context { + \Staff + \consists Ambitus_engraver + } + } +} +@end lilypond + +@noindent +Los valores predeterminados de las propiedades de los contextos +también se pueden establecer para todos los contextos de un tipo en +particular incluyendo la instrucción @code{\set} dentro de un bloque +@code{\context} de la misma forma. + +@seealso + +Referencia de la notación: +@ruser{Modifying context plug-ins}, +@ruser{Changing context default settings}. + -@subsubsection Changing a single context -@ -@subsubsection Changing all contexts of the same type @node Extending the templates @section Extending the templates -UNTRANSLATED NODE: IGNORE ME +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 + +@menu * Soprano and cello:: * Four-part SATB vocal score:: * Building a score from scratch:: -@end menu +@end menu + @node Soprano and cello @subsection Soprano and cello -UNTRANSLATED NODE: IGNORE ME +@cindex plantilla, modificar +@cindex modificar plantillas + +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 @w{"@version{}"} +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" \texto + >> + \layout @{ @} + \midi @{ @} +@} +@end example + +Ahora queremos añadir una parte de violoncello. Veamos el ejemplo +@q{Sólo notas}: + +@example +\version @w{"@version{}"} +melodia = \relative c' @{ + \clef treble + \key c \major + \time 4/4 + a4 b c d +@} + +\score @{ + \new Staff \melodia + \layout @{ @} + \midi @{ @} +@} +@end example + +No necesitamos dos instrucciones @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 @w{"@version{}"} +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 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: + +@c Indentation in this example is deliberately poor +@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,addversion] +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 + +@seealso + +Las plantillas de inicio se pueden encontrar en el apéndice +@q{Templates}, véase @ref{Single staff}. + @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 } +sopranoMusic = \relative c'' { + \clef "treble" + r4 d2 a4 | d4. d8 a2 | cis4 d cis2 | +} +sopranoWords = \lyricmode { + Wor -- thy is the lamb that was slain +} +altoMusic = \relative a' { + \clef "treble" + r4 a2 a4 | fis4. fis8 a2 | g4 fis e2 | +} +altoWords = \sopranoWords +tenorMusic = \relative c' { + \clef "G_8" + r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 | +} +tenorWords = \sopranoWords +bassMusic = \relative c' { + \clef "bass" + r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 | +} +bassWords = \sopranoWords +upper = \relative a' { + \clef "treble" + \global + r4 2 4 | + 4. 8 2 | + 4 2 | +} +lower = \relative c, { + \clef "bass" + \global + 4 2 4 | + 4. 8 2 | + 4 2 | +} + +\score { + << % combine ChoirStaff and PianoStaff in parallel + \new ChoirStaff << + \new Staff = "sopranos" << + \set Staff.instrumentName = "Soprano" + \new Voice = "sopranos" { \global \sopranoMusic } + >> + \new Lyrics \lyricsto "sopranos" { \sopranoWords } + \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} (véase @ref{Vocal ensembles}), 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 "tenores" @{ \letraTenor @} + \new Staff = "bajos" << + \set Staff.instrumentName = "Bass" + \new Voice = "bajos" @{ \global \musicaBajo @} + >> + \new Lyrics \lyricsto "bajos" @{ \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,addversion] +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 2 4 | + 4. 8 2 | + 4 2 | +} +lower = \relative c, { + \clef "bass" + \global + 4 2 4 | + 4. 8 2 | + 4 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 +@cindex plantilla, escribir su propia +@cindex ejemplo de escritura de una partitura +@cindex escribir una partitura, ejemplo +@cindex partitura, ejemplo de escritura + +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 preludio 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 @} + >> % fin 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 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. Lo opuesto es cierto para las voces: +normalmente deben ir seguidas de llaves @code{@{ .. @}} en caso de que +tengamos música codificada como distintas variables que se deben +situar consecutivamente. + +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 y ligaduras de +unión y de expresión en cada una de las voces del pentagrama superior +apuntan en la dirección adecuada con @code{\voiceOne} y +@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 @{ \voiceOne \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,addversion] +\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 | + } --- SKELETON FILE -- -When you actually translate this file, please remove these lines as -well as all `UNTRANSLATED NODE: IGNORE ME' lines. +\score { + << % PianoStaff and Pedal Staff must be simultaneous + \new PianoStaff << + \new Staff = "ManualOne" << + \TimeKey % set time signature and key + \clef "treble" + \new Voice { \voiceOne \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 context + >> +} % end Score context +@end lilypond