X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fes%2Fuser%2Ffundamental.itely;h=76a297a7168c1a62369b86c1aae04446c6c32d2b;hb=f7b38dbef0c8f9cf76101ae83999b1397167caeb;hp=e08c948b14c80063bf2028331100c5bb7957f571;hpb=2f996385b21b9d5006c7369c2c496ccbee001e97;p=lilypond.git diff --git a/Documentation/es/user/fundamental.itely b/Documentation/es/user/fundamental.itely index e08c948b14..76a297a716 100644 --- a/Documentation/es/user/fundamental.itely +++ b/Documentation/es/user/fundamental.itely @@ -1,7 +1,7 @@ @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: b0a1d7fa5e1b8371a0d1f1ed1dfd3fc9bc4881d2 When revising a translation, copy the HEAD committish of the version that you are working on. See TRANSLATION for details. @@ -11,137 +11,2347 @@ @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:: -* Voices contain music:: -* Contexts and engravers:: -* Extending the templates:: +@menu +* How LilyPond files work:: +* Voices contain music:: +* Contexts and engravers:: +* Extending the templates:: @end menu + + @node How LilyPond files work @section How LilyPond files work -UNTRANSLATED NODE: IGNORE ME +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 -* Introduction to the LilyPond file structure:: -* Score is a (single) compound musical expression:: -* Nesting music expressions:: -* On the un-nestedness of brackets and ties:: +@menu +* Introduction to the LilyPond file structure:: +* Score is a (single) compound musical expression:: +* Nesting music expressions:: +* On the un-nestedness of brackets and ties:: @end menu + @node Introduction to the LilyPond file structure @subsection Introduction to the LilyPond file structure -UNTRANSLATED NODE: IGNORE ME +Un ejemplo básico de archivo de entrada de lilypond es el siguiente: + +@example +\version @w{"@version{}"} +\score @{ + @var{...expresión musical compuesta...} % toda la música viene aquí + \header @{ @} + \layout @{ @} + \midi @{ @} +@} +@end example + +@noindent +Existen muchas variaciones de este esquema básico, pero el ejemplo +constituye un útil punto de partida. + +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 ésta: + +@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 tras 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. De todas formas, 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 + +@noindent +Hay personas que ponen algunos de estos comandos fuera del +bloque @code{\score} (por ejemplo, @code{\header} se +sitúa con frecuencia por encima del @code{\score}. Es tan sólo +otra abreviatura que LilyPond acepta. + +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}. + +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 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. 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{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 expresión musical compuesta +@cindex música, expresión compuesta de + +En la sección anterior, @ruser{How LilyPond files work} 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{Una @code{\score} debe comenzar con una única expresión musical.} +@end quotation + +@noindent +Quizá encuentre útil dar un repaso a @ruser{Music expressions +explained}. En esta sección, vimos cómo elaborar grandes expresiones +musicales a partir de pequeñas piezas (comenzábamos con notas, luego +acordes, etc.). Ahora partiremos de una gran expresión musical y +recorreremos el camino inverso hacia abajo. + +@example +\score @{ + @{ % esta llave da inicio a la expresión musical completa + \new GrandStaff << + @var{...introduzca aquí la partitura completa de una ópera de Wagner...} + >> + @} % esta llave da por terminada la expresión musical completa + \layout @{ @} +@} +@end example + +Una ópera de Wagner completa puede ser fácilmente el doble de larga +que este manual, por tanto vamos a hacer sólo un cantante y un piano. +No necesitamos un @code{GrandStaff} para este conjunto, así que lo +retiramos. Sin embargo, sí que @emph{necesitamos} un cantante y un +piano. + +@example +\score @{ + << + \new Staff = "cantante" << + >> + \new PianoStaff = piano << + >> + >> + \layout @{ @} +@} +@end example + +Recuerde que usamos @code{<<} y @code{>>} 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! +Sin embargo, la construcción @code{<< ... >>} no es realmente +necesaria para el pentagrama del cantante (pues contiene una sola +expresión musical), pero los pentagramas (Staff) a menudo necesitan +varias voces (Voice) en su interior, así es bueno adoptar el hábito de +usar @code{<< ... >>} en lugar de llaves. 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 se introducen con +@code{\relative}, y la letra, que se introduce con @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 la capa exterior y luego +trabaje sobre cada una de las capas interiores. También ayuda ser +estricto con los márgenes (asegúrese de que en su editor de texto cada +elemento de la misma capa comienza en la misma posición horizontal). + @node Nesting music expressions @subsection Nesting music expressions -UNTRANSLATED NODE: IGNORE ME +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 tras 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 (ligemamente 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. + +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 seería por debajo. + +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} -@ + @node On the un-nestedness of brackets and ties @subsection On the un-nestedness of brackets and ties -UNTRANSLATED NODE: IGNORE ME + +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 secciones concurrentes o 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 parabla @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íi 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 especiiales, 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 -* I'm hearing Voices:: -* Explicitly instantiating voices:: -* Voices and vocals:: +@menu +* I'm hearing Voices:: +* Explicitly instantiating voices:: +* Voices and vocals:: @end menu + @node I'm hearing Voices @subsection I'm hearing Voices -UNTRANSLATED NODE: IGNORE ME +@cindex polifonía +@cindex capas +@cindex Voice (voz), contexto de + +De las capas más profundas de una partitura de LilyPond, las más bajas +y más fundamentales reciben el nombre de @q{Voice contexts} +(«contextos de voz») o, abreviadamente, @q{Voices} («voces»). Las +voces reciben a veces el nombre de @q{layers} («capas») en otros +programas de edición de partituras. + +De hechho, una capa o contexto de voz es la única que puede contener +música. Si un contexto de voz no se declara explícitamente, se crea +uno de forma automática, como vimos al comienzo de este capítulo. +Ciertos instrumentos como el oboe solamente pueden tocar una nota cada +vez. La música escrita para estos instrumentos es monofónica y +solamente requiere una voz única. Los instrumentos que pueden tocar +más de una nota a la vez, como el piano, con frecuencia necesitarán +varias voces para codificar las distintas notas y ritmos concurrentes +que son capaces de tocar. + +Una sola voz puede contener muchas notas dentro de un acorde, por +supuesto; entonces ¿cuándo, exactamente, se necesitan varias voces? +En primer lugar observe este ejemplo de cuatro acordes: + +@lilypond[quote,verbatim,fragment,ragged-right,relative=1] +\key g \major +4 +@end lilypond + +Esto se puede expresar utilizand sólo símbolos de acorde con ángulos +simples, @code{< ... >}, y para este propósito tan sólo se necesita +una voz. Pero suponga que el Fa sostenido fuese realmente una corchea +seguida de un Sol corchea, una nota de paso que conduce al La. Ahora +tenemos dos notas que empiezan en el mismo momento pero tienen +distintas duraciones: la negra Re, y la corchea Fa sostenido. ¿Cómo se +codifica esto? No se pueden escribir como un acorde porque todas las +notas de un acorde deben tener la misma duración. Y no se pueden +escribir como dos notas separadas porque tienen que empezar en el +mismo momento. Aquí es donde se necesitan dos voces. + +Veamos cómo se hace esto dentro de la sintaxis de entrada de LilyPond. + +@funindex << \\ >> +@funindex \\ + +La forma más fácil de introducir fragmentos con maś de una voz en un +solo pentagrama es escribir cada voz como una secuencia (con +@code{@{...@}}), y combinarlas simultáneamente con ángulos dobles, +@code{<<...>>}. Los fragmentos también se deben separar mediante una +doble barra invertida, @code{\\}, para situarlos en voces separadas. +Sin esto, las notas irían a una sola voz, lo que normalmente producirá +errores. Esta técnica se adapta especialmente bien a piezas de música +que son mayormente monofónicas pero ocasionalmente tienen cortas +secciones de polifonía. + +He aquí cómo dividimos los acordes anteriore en dos voces y añadimos +la nota de paso y la ligadura: + +@lilypond[quote,verbatim,fragment,ragged-right,relative=2] +\key g \major +% Voice "1" Voice "2" +<< { g4 fis8( g) a4 g } \\ { d4 d d d } >> | +@end lilypond + +Observe cómo las plicas de la segunda voz ahora se dirigen hacia +abajo. + +A continuación veamos otro ejemplo sencillo: + +@lilypond[quote,verbatim,fragment,ragged-right,relative=2] +\key d \minor +% Voice "1" Voice "2" +<< { r4 g g4. a8 } \\ { d,2 d4 g } >> | +<< { bes4 bes c bes } \\ { g4 g g8( a) g4 } >> | +<< { a2. r4 } \\ { fis2. s4 } >> | +@end lilypond + +No es necesario usar una construcción @code{<< \\ >>} distinta para +cada compás. Para música que tenga unas pocas notas en cada compás, +esta disposición podría facilitar la legibilidad del código, pero si +hay muchas notas en cada compás podría ser mejor dividirlo en dos +voces separadas, de la siguiente manera: + +@lilypond[quote,verbatim,fragment,ragged-right,relative=2] \key d +\minor << { % Voice "1" r4 g g4. a8 | bes4 bes c bes | a2. r4 | } \\ { +% Voice "2" d,2 d4 g | g4 g g8( a) g4 | fis2. s4 | } >> +@end lilypond + + +Este ejemplo tiene sólo dos voces, pero la misma construcción se puede +usar para codificar tres o más voces mediante la adición de maś +separadores de barra invertida. + +Los contextos de voz llevan los nombres de @code{"1"}, @code{"2"}, +etc. En cada uno de estos contextos, la dirección vertical de las +ligaduras, plicas, matices dinámicos, etc., se ajusta de la forma +correcta. + +@lilypond[quote,verbatim,fragment] +\new Staff \relative c' { + % Main voice + c16 d e f + % Voice "1" Voice "2" Voice "3" + << { g4 f e } \\ { r8 e4 d c8 ~ } >> | + << { d2 e2 } \\ { c8 b16 a b8 g ~ g2 } \\ { s4 b4 c2 } >> | +} +@end lilypond + +Todas estas voces están separadas de la voz principal que contiene las +notas justo por fuera de la construcción @code{<< .. >>}. Le +llamaremos a esto la @emph{construcción simultánea}. Las ligaduras +(de prolongación y de expresión) solamente pueden conectar notas que +estén dentro de la misma voz, luego las ligaduras no pueden entrar o +salir de una construcción simultánea. A la inversa, las voces +paraleleas de construcciones simultáneas distintas sobre el mismo +pentagrama, son la misma voz. Otras propiedades relativas a las voces +también conllevan construcciones simultáneas. A continuación vemos el +mismo ejemplo, con colores y cabezas distintos para cada voz. Observe +que los cambios en una voz no afectan a otras voces, pero persisten +más tarde dentro de la misma voz. Observe tambiénn que las notas +ligadas se pueden dividir entre las mismas voces de dos +construcciones, como se indica aquí en la voz de triángulos azules. + +@lilypond[quote,verbatim] +\new Staff \relative c' { + % Main voice + c16 d e f + << % Bar 1 + { + \voiceOneStyle + g4 f e + } + \\ + { + \voiceTwoStyle + r8 e4 d c8 ~ + } + >> + << % Bar 2 + % Voice 1 continues + { d2 e2 } + \\ + % Voice 2 continues + { c8 b16 a b8 g ~ g2 } + \\ + { + \voiceThreeStyle + s4 b4 c2 + } + >> +} +@end lilypond + +Las instrucciones @code{\voiceXXXStyle} están pensadas principalmente +para usarlas en documentos educativos como este mismo. Modifican el +color de la cabeza, la plica y las barras, y el estilo de la cabeza, +de forma que las voces se puedan distinguir fácilmente. La voz uno +está establecida a rombos rojos, la voz dos a triángulos azules, la +voz tres a círculos verdes con aspas, y la voz cuatro (que no se +utiliza aquí) a aspas color magenta. Veremos más adelante cómo el +usuario puede crear instrucciones como éstas. Véase @ref{Visibility +and color of objects}. + +La polifonía no cambia la relación de las notas dentro de un bloque +@code{\relative @{ @}}. La altura de cada nota aún se calcula con +relación a la nota que le precede inmediatamente, o a la primera nota +del acrode precedente. Así, en + +@example +\relative c' @{ notaA << < notaB notaC > \\ notaD >> notaE @} +@end example + +@noindent +@code{notaB} es relativa a @code{notaA} @* +@code{notaC} es relativa a @code{notaB}, no a @code{notaA}; @* +@code{notaD} es relativa a @code{notaB}, no a @code{notaA} ni a +@code{notaC}. @* +@code{notaE} es relativa a @code{notaD}, no a @code{notaA} + +Una forma alternativa, que podría ser más clara si las notas en las +voces están muy separadas, es colocar una instrucción @code{\relative} +al principio de cada voz: + +@example +\relative c' @{ notaA ... @} +<< + \relative c'' @{ < notaB notaC > ... @} +\\ + \relative g' @{ notaD ... @} +>> +\relative c' @{ notaE ... @} +@end example + +Finalmente, analicemos las voces en una pieza de música más compleja. +He aquí las notas de los dos primeros compases del segundo de los Dos +Nocturnos de Chopin, Op 32. Este ejemplo se utilizará en fases +posteriores dentro del presente capítulo y el siguiente, para ilustrar +varias técnicas para producir notación, y por tanto le pedimos que +ignore por ahora cualquier cosa en el código subyacente que le parezca +misteriorso y tan sólo se concentre en la música y las voces (todas +las complicaciones se explicarán en secciones posteriores). + +@c The following should appear as music without code +@lilypond[quote,ragged-right] +\new Staff \relative c'' { + \key aes \major + << % Voice one + { c2 aes4. bes8 } + \\ % Voice two + { aes2 f4 fes } + \\ % No voice three + \\ % Voice four + { + % Ignore these for now - they are explained in Ch 4 + \once \override NoteColumn #'force-hshift = #0 + 2 + \once \override NoteColumn #'force-hshift = #0.5 + des2 + } + >> | + 1 | +} +@end lilypond + +Con frecuencia, la dirección de las plicas se utiiliza para indicar la +continuidad de dos líneas melódicas simultáneas. Aquí, todas las +plicas de las notas agudas se dirigen hacia arriba y las de las notas +graves hacia abajo. Ésta es la primera indicación de que se requiere +más de una voz. + +Pero la necesidad real de varias voces aflora cuando hay notas que +comienzan en el mismo tiempo pero tienen distintas duraciones. +Observe las notas que comienzan en la tercera parte del primer compás. +El La bemol es una negra con puntillo, el Fa es una negra y el Re +bemol es una blanca. Estas notas nos e pueden escribir como un acorde +porque todas las ntoas de un acorde deben tener la misma duración. +Tampoco se pueden escribir como notas secuenciales, pues deben +comenzar al mismo tiempo. Esta sección del compás requiere tres +voces, y la práctica común sería escribir todo el compás como tres +voces como se muestra abajo, donde hemos usado distintas cabezas y +colores para las tres voces. Una vez más, el código que subyace a +este ejemplo se explicará más tarde, así pues ignore todo lo que no +entienda. + +@c The following should appear as music without code +@c The three voice styles should be defined in -init +@lilypond[quote,ragged-right] +\new Staff \relative c'' { + \key aes \major + << + { % Voice one + \voiceOneStyle + c2 aes4. bes8 + } + \\ % Voice two + { \voiceTwoStyle + aes2 f4 fes + } + \\ % No Voice three (we want stems down) + \\ % Voice four + { \voiceThreeStyle + % Ignore these for now - they are explained in Ch 4 + \once \override NoteColumn #'force-hshift = #0 + 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 plica arriba + +Las direcciones de las plicas se asignan automáticamente de forma que +las voces de numeración impar reciben las plicas hacia arriba y las de +numeración par hacia abajo. Las plicas de las voces 1 y 2 están +correctas, pero las plicas de la voz 3 debería ir hacia abajo en este +fragmentoo en particular. Podemos corregir esto simplemente +olvidándonos de la voz tres y situando la música en la voz cuatro: + +@lilypond[quote,verbatim,fragment,ragged-right] +\new Staff \relative c'' { + \key aes \major + << % Voice one + { c2 aes4. bes8 } + \\ % Voice two + { aes2 f4 fes } + \\ % Omit Voice three + \\ % Voice four + { 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 +force-hshift en @ref{Fixing overlapping notation} ) @node Explicitly instantiating voices @subsection Explicitly instantiating voices -UNTRANSLATED NODE: IGNORE ME + +@funindex \voiceOne +@funindex \voiceTwo +@funindex \voiceThree +@funindex \voiceFour + +Los contextos de voz también se pueden crear manualmente dentro de un +bloque @code{<< >>} para crear música polifónica, utilizando +@code{\voiceOne} ... @code{\voiceFour} para indicar las direcciones +requeridas de plicas, ligaduras, etc. En partituras más largas, este +método es más claro porque permite que las voces estén separadas y +reciban nombres más descriptivos. + +Concretamente, la construcción @code{<< \\ >>} que usamos en la +sección previa: + +@example +\new Staff @{ + \relative c' @{ + << @{ e4 f g a @} \\ @{ c,4 d e f @} >> + @} +@} +@end example + +@noindent +equivale a + +@example +\new Staff << + \new Voice = "1" @{ \voiceOne \relative c' @{ e4 f g a @} @} + \new Voice = "2" @{ \voiceTwo \relative c' @{ c4 d e f @} @} +>> +@end example + +Los dos ejemplos anteriores producirán: + +@c The following example should not display the code +@lilypond[ragged-right,quote] +\new Staff << + \new Voice = "1" { \voiceOne \relative c' { e4 f g a } } + \new Voice = "2" { \voiceTwo \relative c' { c4 d e f } } +>> +@end lilypond + +Las instrucciones @code{\voiceXXX} establecen la dirección de las +plicas, ligaduras de expresión, ligaduras de prolongación, +articulaciones, anotaciones de texto, puntillos y digitaciones. +@code{\voiceOne} y @code{\voiceThree} hacen que estos objetos apunten +hacia arriba, mientras que @code{\voiceTwo} y @code{\voiceFour} los +hacen apuntar hacia abajo. Estas instrucciones también producen un +desplazamientoo horizontal para cada voz cuando es necesario para +evitar choques entre las cabezas. La instrucción @code{\oneVoice} +devuelve los ajustes de nuevo a los valores normales para una sola +voz. + +Veamos en algunos ejemplos sencillos exactamente qué efecto tienen +@code{\oneVoice}, @code{\voiceOne} y @code{voiceTwo} sobre el marcado, +las ligaduras de unión y de expresión y las indicaciones de dinámica: + +@lilypond[quote,ragged-right,verbatim] +\relative c'{ + % Default behaviour or behaviour after \oneVoice + c d8 ~ d e4 ( f g a ) b-> c +} +@end lilypond + +@lilypond[quote,ragged-right,verbatim] +\relative c'{ + \voiceOne + c d8 ~ d e4 ( f g a ) b-> c + \oneVoice + c, d8 ~ d e4 ( f g a ) b-> c +} +@end lilypond + +@lilypond[quote,ragged-right,verbatim] +\relative c'{ + \voiceTwo + c d8 ~ d e4 ( f g a ) b-> c + \oneVoice + c, d8 ~ d e4 ( f g a ) b-> c +} +@end lilypond + +Una expresión que aparece directamente dentro de @code{<< >>} +pertenece a la voz principal (pero, observe, @strong{no} dentro de una +construcción @code{<< \\ >>}). Esto es útilo cuando aparecen voces +nuevas mientras la voz principal está sonando. A continuación podemos +ver una realización más correcta del ejemplo de la sección anterior. +Las notas rojas en forma de rombo muestran que la melodía principal +está ahora dentro de un contexto de una sola voz, haciendo que se +pueda trazar una ligadura por encima de ellas. + +@lilypond[quote,ragged-right,verbatim] +\new Staff \relative c' { + \voiceOneStyle + % The following notes are monophonic + c16^( d e f + % Start simultaneous section of three voices + << + % Continue the main voice in parallel + { g4 f e | d2 e2) } + % Initiate second voice + \new Voice { + % Set stems, etc, down + \voiceTwo + r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2 + } + % Initiate third voice + \new Voice { + % Set stems, etc, up + \voiceThree + s2. | s4 b4 c2 + } + >> +} +@end lilypond + +@cindex anidado de expresiones musicales +@cindex anidado de construcciones simultáneas + +Seon posibles construcciones polifónicas anidadas más profundamente, y +si una voz aparece sólo brevemente podría haber una forma más natural +de tipografiar la música. + +@lilypond[quote,ragged-right,verbatim] +\new Staff \relative c' { + c16^( d e f + << + { g4 f e | d2 e2) } + \new Voice { + \voiceTwo + r8 e4 d c8 ~ | + << + {c8 b16 a b8 g ~ g2} + \new Voice { + \voiceThree + s4 b4 c2 + } + >> + } + >> +} +@end lilypond + + +Este método de anida voces nuevas brevemente es útil cuando sólo hay +secciones polifónicas pequeñas, pero cuando todo el pentagrama es muy +plifónico podría ser más claro usar varias voces todo el tiempo, +usando notas espaciadoras para pasar por encima de las secciones en +que una voz está en silencio, como aquí: + +@lilypond[quote,ragged-right,verbatim] +\new Staff \relative c' << + % Initiate first voice + \new Voice { + \voiceOne + c16^( d e f g4 f e | d2 e2) | + } + % Initiate second voice + \new Voice { + % set stems, etc down + \voiceTwo + s4 r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2 | + } + % Initiate third voice + \new Voice { + % set stems, etc up + \voiceThree + s1 | s4 b4 c2 | + } +>> +@end lilypond + +@cindex columna de notas +@cindex desplazamiento, instrucciones de +@funindex \shiftOff +@funindex \shiftOn +@funindex \shiftOnn +@funindex \shiftOnnn + +Las notas cercanas de un acorde, o las notas que se producen al mismo +tiempo en distintas voces, se disponen en dos (y ocasionalmente más) +columnas para evitar el solapamiento de las cabezas. Reciben el +nombre de columnas de notas. Hay columnas distintas para cada voz, y +el desplazamiento especificado en curso dependiente de la voz se +applica a la columna de la nota si en caso contgrario se produjese una +colisión. Esto se puede ver en el ejemplo anterior. En el compás 2 el +Do en la voz dos está desplazado a la derecha respecto del Re de la +voz uno, y en el último acorde el Do de la voz tres también está +desplazado a la derecha respecto de las otras notas. + +Las instrucciones @code{\shiftOn}, @code{\shiftOnn}, @code{\shiftOnnn} +y @code{\shiftOff} especifican el grado en que se deben desplazar las +ntoas y acordes de la voz si en caso contrariio ocurriese una +colisión. De forma predeterminada, las voces exteriores (normalmente +las voces uno y dos) llecan especificado @code{\shiftOff}, mientras +que las voces interiores (tres y cuatro) tienen @code{\shiftOn} +especificado. Cuando se aplica un desplazamiento, las voces uno y +tres se desplazan hacia la derecha y las voces dos y cuatro se +desplazan hacia la izquierda. + +@code{\shiftOnn} y @code{\shiftOnnn} definen niveles adicionales de +desplazamiento que se peuden especificar temporalmente para resolver +colisiones en situaciones complejas (véase @ref{Real music example}). + +Una columna de notas puede contener s´olo una nota (o acorde) de una +voz con las plicas hacia arriba y una not (o acorde) de una voz con +las plicas hacia abajo. Si las notas de dos voces que tienen las +plicas en la misma dirección se sitúan en la misma posición y las dos +voces no tienen ningún desplazamiento o llevan especificado el mismo +desplazamiento, se producirá el mensaje de error @qq{Chocan demasiadas +columnas de notas}. @node Voices and vocals @subsection Voices and vocals -UNTRANSLATED NODE: IGNORE ME + +La música vocal presenta una dificultad especial: tenemos que combinar +dos expresiones, a saber, las notas y la letra. + +Ya ha visto la instrucción @code{\addlyrics@{@}}, que maneja bien +partituras sencillas. Sin embargo esta técnica es algo limitada. +Para música de mayor complejidad, tenemos que introducir la letra en +un contexto @code{Lyrics} utilizando @code{\new Lyrics} y enlazar +explícitamente la letra y las notas mediante @code{\lyricsto@{@}}, +usando el nombre asignado a la voz. + +@lilypond[quote,verbatim,fragment] +<< + \new Voice = "one" \relative c'' { + \autoBeamOff + \time 2/4 + c4 b8. a16 g4. f8 e4 d c2 + } + \new Lyrics \lyricsto "one" { + No more let sins and sor -- rows grow. + } +>> +@end lilypond + +El barrado automático que LilyPond usa de forma predeterminada +funciona bien para la música instrumental, pero no ten bien para +música con letra, donde o bien el barrado no se necesita en absoluto, +o bien se utiliza para indicar los melismaas de la letra. En el +ejemplo anterior hemos utilizado la instrucción @code{\autoBeamOff} +para desactivar el barrado automático. + +Ahora vamos a reutilizar el ejemplo anterior de «Judas Macabeo» para +ilustrar esta técnica más flexible. Primero la reescribiremos para +que use variables de manera que la música y la letra se pueda separar +de la estructura de pentagramas. También introduciremos una llave de +grupo de ChoirStaff. La letra en sí se debe introducir con +@code{\lyricmode} para estar seguros de que se interpreta como letra y +no como música. + +@lilypond[quote,verbatim] +global = { \time 6/8 \partial 8 \key f \major} +SopOneMusic = \relative c'' { + c8 | c([ bes)] a a([ g)] f | f'4. b, | c4.~ c4 } +SopTwoMusic = \relative c' { + r8 | r4. r4 c8 | a'([ g)] f f([ e)] d | e([ d)] c bes' } +SopOneLyrics = \lyricmode { + Let | flee -- cy flocks the | hills a -- dorn, __ } +SopTwoLyrics = \lyricmode { + Let | flee -- cy flocks the | hills a -- dorn, } + +\score { + \new ChoirStaff << + \new Staff << + \new Voice = "SopOne" { + \global + \SopOneMusic + } + \new Lyrics \lyricsto "SopOne" { + \SopOneLyrics + } + >> + \new Staff << + \new Voice = "SopTwo" { + \global + \SopTwoMusic + } + \new Lyrics \lyricsto "SopTwo" { + \SopTwoLyrics + } + >> + >> +} +@end lilypond + +Ésta es la estructura básica de todas las partituras vocales. Se +pueden añadir más pentagramas según se necesite, se pueden añadir más +voces a los pentagramas y más estrofas a la letra, y las variables que +contienen la música se pueden colocar fácilmente en archivos separados +cuando se hagan demasiado largos. + +A continuación podemos ver un ejemplo final de la primera línea de un +himno con cuatro estrofas, para coro SATB. En este caso la letra de +las cuatro partes es la misma. + +@lilypond[quote,verbatim] +TimeKey = { \time 4/4 \partial 4 \key c \major} +SopMusic = \relative c' { c4 | e4. e8 g4 g | a a g } +AltoMusic = \relative c' { c4 | c4. c8 e4 e | f f e } +TenorMusic = \relative c { e4 | g4. g8 c4. b8 | a8 b c d e4 } +BassMusic = \relative c { c4 | c4. c8 c4 c | f8 g a b c4 } +VerseOne = \lyricmode { + E -- | ter -- nal fa -- ther, | strong to save, } +VerseTwo = \lyricmode { + O | Christ, whose voice the | wa -- ters heard, } +VerseThree = \lyricmode { + O | Ho -- ly Spi -- rit, | who didst brood } +VerseFour = \lyricmode { + O | Tri -- ni -- ty of | love and pow'r } + +\score { + \new ChoirStaff << + \new Staff << + \clef "treble" + \new Voice = "Sop" { \voiceOne \TimeKey \SopMusic } + \new Voice = "Alto" { \voiceTwo \AltoMusic } + \new Lyrics \lyricsto "Sop" { \VerseOne } + \new Lyrics \lyricsto "Sop" { \VerseTwo } + \new Lyrics \lyricsto "Sop" { \VerseThree } + \new Lyrics \lyricsto "Sop" { \VerseFour } + >> + \new Staff << + \clef "bass" + \new Voice = "Tenor" { \voiceOne \TimeKey \TenorMusic } + \new Voice = "Bass" { \voiceTwo \BassMusic } + >> + >> +} +@end lilypond @node Contexts and engravers @section Contexts and engravers -UNTRANSLATED NODE: IGNORE ME +Los contextos y grabadores se han mencionado de manera informal en +secciones anteriore; ahora tan sólo vamos a ver estos conceptos con +más detalle, pues son importantes en el ajuste fino de la salida de +LilyPond. -@menu -* Contexts explained:: -* Creating contexts:: -* Engravers explained:: -* Modifying context properties:: -* Adding and removing engravers:: +@menu +* Contexts explained:: +* Creating contexts:: +* Engravers explained:: +* Modifying context properties:: +* Adding and removing engravers:: @end menu @node Contexts explained @subsection Contexts explained -UNTRANSLATED NODE: IGNORE ME +Cuando se imprime la música, se tienen que añadir a la salida una gran cantidad de elementos +notacionales. Por ejemplo, compare la entrada y la salida del siguiente ejemplo: + +@lilypond[quote,verbatim,relative=2,fragment] +cis4 cis2. g4 +@end lilypond + +La entrada es bastante escueta, pero en la salida se añaden líneas divisorias, alteraciones accidentales, +la clave y la indicación de compás. LilyPond @emph{interpreta} la +entrada. En esta fase se inspecciona la información musical en orden temporal, +de forma parecida a la lectura de una partitura de izquierda a derecha. Mientras se lee +la entrada, el programa recuerda dónde se encuentran los límites de los compases, y qué notas +requieren alteraciones explícitas. Esta información se puede presentar sobre varios +niveles. Por ejemplo, el efecto de una alteración accidental se encuentra limitada +a un solo pentagrama, mientras que una barra divisoria debe estar sincronizada a través +de la partitura de arriba a abajo. + +Dentro de LilyPond, estas reglas y pequeñas porciones de información se agrupan en +@emph{Contexts}. Algunos ejemplos de contextos son @code{Voice} (Voz), +@code{Staff} (Pauta o pentagrama) y @code{Score} (Partitura). Los contextos son jerárquicos, por +ejemplo: un @code{Staff} contener muchas @code{Voice}s, y una +@code{Score} puede contener muchos contextos de @code{Staff}. + +@quotation +@sourceimage{context-example,5cm,,} +@end quotation + +Cada contexto asume la responsabilidad de imponer algunas reglas de notación, +creando ciertos objetos de notación y manteniendo las propiedades +asociadas. Por ejemplo, el contexto @code{Voice} puede introducir una alteración +accidental y entonces el contexto @code{Staff} mantiene la regla de mostrar o +suprimir la alteración para el resto del compás. La +sincronización de las líneas divisorias se gestiona dentro del contexto de la partitura, @code{Score}. + +Sin embargo, en algunas músicas posiblemente no queramos que las líneas divisorias estén +sincronizada (pensemos en una partitura polimétrica en compases de 4/4 y de 3/4). En tales casos, +debemos modificar los ajustes por omisión de los contextos @code{Score} +y @code{Staff}. + +Para partituras muy sencillas, los contextos se crean implícitamente y no debemos +preocuparnos por ellos. Para piezas mayores, como por ejemplo cualquiera que tenga más de un pentagrama, +los contextos se deben crear explícitamente para asegurarnos +de que tendremos la cantidad exacta de pentagramas que necesitamos, +y que están en el orden correcto. Para tipografiar piezas +con notación especializada, puede ser útil modificar contextos existentes +o definir unos nuevos. + + +En la referencia del programa se encuentra una descripción completa de todos los contextos que están disponibles, +consulte +@ifhtml +@internalsref{Contexts}. +@end ifhtml +@ifnothtml +Traducción @expansion{} Contexto. +@end ifnothtml + +@c [TODO: describe propagation] @node Creating contexts @subsection Creating contexts -UNTRANSLATED NODE: IGNORE ME +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 + +@funindex \new +@cindex contextos nuevos +@cindex nuevo, contexto + +@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}. + +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. 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}. @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 LiilyPond 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 aplica 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 (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 Dynamic_engraver + @tab Crea reguladores e indicaciones dinámicas textuales +@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. + @node Modifying context properties @subsection Modifying context properties -UNTRANSLATED NODE: IGNORE ME +@cindex contexto, propiedades de +@funindex \set +@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 Se 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}. + +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 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 Voice, así que +la segunda instrucción @code{\set} establece la propiedad +@code{instrumentName} del contexto 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 de errores Log. + +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. Esta es una de las razones por las que es +muy recomendable ussar un editor que sea sensible al contexto y con +resaltado de la sintaxis para la edición de archivos de LilyPond, como +por ejemplo Vim, Jedit, ConTEXT o Emacs, ya que los nombres de +propiedades desconocidas se resaltarán de forma distinta. + +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 ##t +(verdadero) para todos los pentagramas. Si se establece a ##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 + +El valor de cada propiedad establecido de esta forma se puede devolver +a su valor original con la instrucción @code{\unset}. + +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 ##t y +##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 peude especificar de una dorma mucho más general +utilizando la potentísima instrucción @code{markup}. + + +@funindex \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 + +Efectivamente, esto sobreescribe el valor predeterminado de la +propiedad. Aún se puede modificar dinámicamente utilizando +@code{\set} y devolverlo a su (nuevo) valor predeterminado con +@code{\unset}. @node Adding and removing engravers @subsection Adding and removing engravers -UNTRANSLATED NODE: IGNORE ME +@cindex Grabadores, adición +@cindex Grabadores, eliminación + +@funindex \consists +@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 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 original 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 @emph{Nombre_del_grabador}}, + +situada dentro de un bloque @code{\with}. Ciertas partituras vocales +tienen una indicación de @rglos{ambitus} situada al principio del +pentagrama para indicar el ámbito de notas en dicho pentagrama. 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 Ambitus al contexto de @code{Staff}, +calcula el rango a partir 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 + +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. -@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 +* Soprano and cello:: +* Four-part SATB vocal score:: +* Building a score from scratch:: +@end menu -@menu -* Soprano and cello:: -* Four-part SATB vocal score:: -* Building a score from scratch:: -@end menu @node Soprano and cello @subsection Soprano and cello -UNTRANSLATED NODE: IGNORE ME + +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 comandos @code{\version}. Vamos a necesitar la +sección @code{melodia}. No queremos dos secciones @code{\score} (si +tuviésemos dos @code{\score}s, acabaríamos con las dos particellas por +separado. Queremos las dos juntas, como un dúo. Dentro de la sección +@code{\score}, no nos hacen falta dos @code{\layout} ni dos +@code{\midi}. + +Si nos limitásemos a copiar y pegar la sección @code{melodia}, +acabaríamos con dos secciones @code{melodia} separadas, así que vamos +a cambiarles el nombre. Llamaremos @code{musicaSoprano} a la sección +de la soprano y @code{musicaCello} a la sección del violoncello. Al +mismo tiempo cambiaremos el nombre de @code{texto} a +@code{letraSoprano}. Recuerde cambiar el nombre a las dos apariciones +de todos estos nombres -- tanto la definición inicial (la parte +@code{melodia = relative c' @{ }) -- como el uso de ese nombre (en la +sección @code{\score}). + +También aprovecharemos para cambiar el pentagrama de la parte del +cello (los violoncellos se escriben normalmente en clave de Fa). +Asimismo, cambiaremos algunas notas del cello. + +@example +\version @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 + +@example +\score@{ + << + << + \new Voice = "uno" @{ + \autoBeamOff + \sopranoMusic + @} + \new Lyrics \lyricsto "uno" \letraSoprano + >> + \new Staff \musicaCello + >> + \layout @{ @} + \midi @{ @} +@} +@end example + +@noindent +Esto parece un poco enrevesado; los márgenes están descuadrados. Esto +tiene fácil solución. Presentamos aquí la plantilla completa para +soprano y cello. + +@lilypond[quote,verbatim,ragged-right] +\version "2.11.38" +sopranoMusic = \relative c' { + \clef treble + \key c \major + \time 4/4 + + a4 b c d +} + +sopranoLyrics = \lyricmode { + Aaa Bee Cee Dee +} + +celloMusic = \relative c { + \clef bass + \key c \major + \time 4/4 + + d4 g fis8 e d4 +} + +\score{ + << + << + \new Voice = "one" { + \autoBeamOff + \sopranoMusic + } + \new Lyrics \lyricsto "one" \sopranoLyrics + >> + \new Staff \celloMusic + >> + \layout { } + \midi { } +} +@end lilypond @node Four-part SATB vocal score @subsection Four-part SATB vocal score -UNTRANSLATED NODE: IGNORE ME +La mayor parte de las partituras vocales escritas para coro mixto a +cuatro voces con acompañamiento orquestal, como el «Elías» de +Mendelssohn o el «Mesías» de Haendel, tienen la música coral y la +letra en cuatro pentagramas para S, A, T y B, respectivamente, con una +reducción de piano del acompañamiento de orquesta, por debajo. He aquí +un ejemplo del «Mesías» de Haendel: + +@c The following should appear as music without code +@lilypond[quote,ragged-right] +global = { \key d \major \time 4/4 } +sopMusic = \relative c'' { + \clef "treble" + r4 d2 a4 | d4. d8 a2 | cis4 d cis2 | +} +sopWords = \lyricmode { + Wor -- thy is the lamb that was slain +} +altoMusic = \relative a' { + \clef "treble" + r4 a2 a4 | fis4. fis8 a2 | g4 fis e2 | +} +altoWords = \sopWords +tenorMusic = \relative c' { + \clef "G_8" + r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 | +} +tenorWords = \sopWords +bassMusic = \relative c' { + \clef "bass" + r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 | +} +bassWords = \sopWords +upper = \relative a' { + \clef "treble" + \global + r4 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 + +Ninguna de las plantillas proporciona esta disposición con exactitud. +La más parecida es @q{partitura vocal SATB y reducción de piano +automática}, pero necesitamos cambiar la disposición y añadir un +acompañamiento de piano que no esté derviado automáticamente de las +partes vocales. Las variables que contienen la música y la letra de +las partes vocales es adecuada, pero tendremos que añadir variables +para la reducción de piano. + +El orden en que aparecen los contextos en el ChoirStaff de la +plantilla no se corresponde con el orden de la partitura vocal que +hemos mostrado más arriba. Tenemos que reordenarlas para que haya +cuatro pentagramas con la letra escrita directamente bajo las notas de +cada parte. Todas las voces deben ser @code{\voiceOne}, que es la +predeterminada, para que las instrucciones @code{\voiceXXX} se puedan +eliminar. También tenemos que especificar la clave de tenor (clave de +sol octava baja) en las partes de tenor. Aún no hemos encontrado la +forma en que la letra se especifica en la plantilla, así que tenemos +que utilizar el método que nos resulta familiar. También tenemos que +escribir los nombres de cada pentagrama. + +Al hacerlo así obtenemos el ChoirStaff siguiente: + +@example + \new ChoirStaff << + \new Staff = "sopranos" << + \set Staff.instrumentName = "Soprano" + \new Voice = "sopranos" @{ \global \musicaSoprano @} + >> + \new Lyrics \lyricsto "sopranos" @{ \latraSoprano @} + \new Staff = "altos" << + \set Staff.instrumentName = "Alto" + \new Voice = "altos" @{ \global \musicaAlto @} + >> + \new Lyrics \lyricsto "altos" @{ \letraAlto @} + \new Staff = "tenores" << + \set Staff.instrumentName = "Tenor" + \new Voice = "tenores" @{ \global \musicaTenor @} + >> + \new Lyrics \lyricsto "tenors" @{ \letraTenor @} + \new Staff = "bajos" << + \set Staff.instrumentName = "Bass" + \new Voice = "bajos" @{ \global \musicaBajo @} + >> + \new Lyrics \lyricsto "basses" @{ \letraBajo @} + >> % fin del ChoirStaff +@end example + +A continuación debemos trabajar sobre la parte de piano. Es fácil: +tan sólo hay que sacar la parte de piano de la plantilla de @q{Piano +solista}: + +@example +\new PianoStaff << + \set PianoStaff.instrumentName = "Piano " + \new Staff = "superior" \superior + \new Staff = "inferior" \inferior +>> +@end example + +y escribir las definiciones de variable para @code{superior} e +@code{inferior}. + +Los grupos ChoirStaff y PianoStaff se deben combinar utilizando +ángulos dobles, ya queremos apilarlos unos sobre otros: + +@example +<< % combinar los grupos ChoirStaff y PianoStaff uno sobre el otro + \new ChoirStaff << + \new Staff = "sopranos" << + \new Voice = "sopranos" @{ \global \musicaSoprano @} + >> + \new Lyrics \lyricsto "sopranos" @{ \letraSoprano @} + \new Staff = "altos" << + \new Voice = "altos" @{ \global \musicaAlto @} + >> + \new Lyrics \lyricsto "altos" @{ \letraAlto @} + \new Staff = "tenores" << + \clef "G_8" % clave de tenor + \new Voice = "tenores" @{ \global \musicaTenor @} + >> + \new Lyrics \lyricsto "tenores" @{ \letraTenor @} + \new Staff = "bajos" << + \clef "bass" + \new Voice = "bajos" @{ \global \musicaBajo @} + >> + \new Lyrics \lyricsto "bajos" @{ \letraBajo @} + >> % fin del ChoirStaff + + \new PianoStaff << + \set PianoStaff.instrumentName = "Piano " + \new Staff = "upper" \upper + \new Staff = "lower" \lower + >> +>> +@end example + +Al combinar todo esto junto y escribir la música de los tres compases +del ejemplo anterior, obtenemos: + +@lilypond[quote,verbatim,ragged-right] +\version "2.11.38" +global = { \key d \major \time 4/4 } +sopMusic = \relative c'' { + \clef "treble" + r4 d2 a4 | d4. d8 a2 | cis4 d cis2 | +} +sopWords = \lyricmode { + Wor -- thy is the lamb that was slain +} +altoMusic = \relative a' { + \clef "treble" + r4 a2 a4 | fis4. fis8 a2 | g4 fis fis2 | +} +altoWords = \sopWords +tenorMusic = \relative c' { + \clef "G_8" + r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 | +} +tenorWords = \sopWords +bassMusic = \relative c' { + \clef "bass" + r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 | +} +bassWords = \sopWords +upper = \relative a' { + \clef "treble" + \global + r4 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 +Después de adquirir algo de soltura en la escritura del código de +LilyPond, se dará cuenta de que es más fácil construir completamente +una partitura partiendo de cero, que modificar una plantilla. También +puede desarrollar su propio estilo de forma que se adapte al tipo de +música que le apetezca. Veamos a continuación cómo confeccionar una +partitura para un preludio de órgano, como ejemplo. + +Comenzamos con una sección para el encabezamiento. Aquí es donde van +el título, nombre del compositor, etc., después van las definiciones +de las variables, y finalmente el bloque de partitura. Comencemos a +verlas por encima y más tarde completaremos los detalles. + +Utilizaremos los dos primeros compases del peludio de Bach basado en +@emph{Jesu, meine Freude}, que está escrito para órgano con dos +manuales y pedal. Tiene estos dos compases de música al final de la +sección. La parte del manual superior tiene dos voces, y el inferior +y el pedal, una voz cada uno. Así pues, necesitamos cuatro +definiciones para la música y una más para definir el compás y la +tonalidad: + +@example +\version @w{"@version{}"} +\header @{ + title = "Jesu, meine Freude" + composer = "J S Bach" +@} +TimeKey = @{ \time 4/4 \key c \minor @} +MusicaManualUnoVozUno = @{s1@} +MusicaManualUnoVozDos = @{s1@} +MusicaManualDos = @{s1@} +MusicaPedal = @{s1@} + +\score @{ +@} +@end example + +Por el momento hemos escrito tan sólo una nota espaciadora, @code{s1}, +en lugar de la música de verdad. La añadiremos más adelante. + +A continuación veamos qué va en el bloque de partitura. +Sencillamente, reflejaremos la estructura de pentagramas que deseemos. +La música de órgano se escribe por lo general en tres pentagramas, uno +para cada uno de los manuales y otro para el pedal. Los pentagramas +de los manuales se abarcan con una llave, así que los incluiremos en +un grupo PianoStaff. La primera parte de manual tiene dos voces, y la +segunda sólo una. + +@example + \new PianoStaff << + \new Staff = "ManualUno" << + \new Voice @{ \MusicaManualUnoVozUno @} + \new Voice @{ \MusicaManualUnoVozDos @} + >> % fun del contexto de Staff ManualUno + \new Staff = "ManualDos" << + \new Voice @{ \MusicaManualDos @} + >> % fin del contexto de Staff ManualDos + >> % fin del contexto de PianoStaff +@end example + +Después, tenemos que añadir un pentagrama para el órgano de pedal. +Esto va por debajo del PianoStaff, pero debe ser simultáneo con él, +por lo que escribimos dobles ángulos rodeando a los dos. Si esto se +nos olvida, se producirá un error en el archivo log de registro. ¡Es +un error muy común que cometerá antes o después! Intente copiar el +ejemplo final que aparece al final de la sección, borre los dobles +ángulos y procese el archivo para ver qué error produce. + +@example +<< % el grupo PianoStaff y el pentagrama de Pedal son simultáneos + \new PianoStaff << + \new Staff = "ManualUno" << + \new Voice @{ \MusicaManualUnoVozUno @} + \new Voice @{ \MusicaManualUnoVozDos @} + >> % fin del contexto de Staff ManualUno + \new Staff = "ManualDos" << + \new Voice @{ \MusicaManualDos @} + >> % fin del contexto de Staff ManualDos + >> % fin del contexto de PianoStaff + \new Staff = "OrganoPedal" << + \new Voice @{ \MusicaOrganoPedal @} + >> +>> +@end example + +No es estrictamente necesario utilizar la construcción simultánea +@code{<< >>} para el pentagrama del manual dos y el pentagrama del +órgano de pedal, ya que contienen una única expresión, pero no hace +daño y es una buena costumbre utilizar siempre dobles ángulos después +de @code{\new Staff} cuando hay varias voces. + +Añadamos esta estructura al bloque de partitura, y ajustemos el +sangrado de los márgenes. También escribimos las claves +correspondientes, nos aseguramos de que las plicas de la segunda voz +apuntan hacia abajo mediante @code{\voiceTwo} y escribimos el compás y +la tonalidad en cada uno de los pentagramas usando nuestra variable +previamente definida @code{\TimeKey}. + +@example +\score @{ + << % el grupo PianoStaff y el pentagrama de Pedal son simultáneos + \new PianoStaff << + \new Staff = "ManualUno" << + \TimeKey % establecer compás y tonalidad + \clef "treble" + \new Voice @{ \MusicaManualUnoVozUno @} + \new Voice @{ \voiceTwo \MusicaManualUnoVozDos @} + >> % fin del contexto de Staff ManualUno + \new Staff = "ManualDos" << + \TimeKey + \clef "bass" + \new Voice @{ \MusicaManualDos @} + >> % fin del contexto de Staff ManualDos + >> % fin del contexto de PianoStaff + \new Staff = "OrganoPedal" << + \TimeKey + \clef "bass" + \new Voice @{ \MusicaOrganoPedal @} + >> % fin del pentagrama de OrganoPedal + >> +@} % end Score context +@end example + +Con esto se completa la estructura. Toda música para órgano de tres +pentagramas tendrá una estructura similar, aunque el número de voces +puede variar. Todo lo que nos queda es añadir la música, y combinar +todas las partes. + +@lilypond[quote,verbatim,ragged-right] +\version "2.11.38" +\header { + title = "Jesu, meine Freude" + composer = "J S Bach" +} +TimeKey = { \time 4/4 \key c \minor } +ManualOneVoiceOneMusic = \relative g' { + g4 g f ees | d2 c2 | +} +ManualOneVoiceTwoMusic = \relative c' { + ees16 d ees8~ ees16 f ees s c8 d~ d c~ | + c c4 b8 c8. g16 c b c d | +} +ManualTwoMusic = \relative c' { + c16 b c8~ c16 b c g a8 g~ g16 g aes ees | + f ees f d g aes g f ees d e8~ ees16 f ees d | +} +PedalOrganMusic = \relative c { + r8 c16 d ees d ees8~ ees16 a, b g c b c8 | + r16 g ees f g f g8 c,2 | + } +\score { + << % PianoStaff and Pedal Staff must be simultaneous + \new PianoStaff << + \new Staff = "ManualOne" << + \TimeKey % set time signature and key + \clef "treble" + \new Voice { \ManualOneVoiceOneMusic } + \new Voice { \voiceTwo \ManualOneVoiceTwoMusic } + >> % end ManualOne Staff context + \new Staff = "ManualTwo" << + \TimeKey + \clef "bass" + \new Voice { \ManualTwoMusic } + >> % end ManualTwo Staff context + >> % end PianoStaff context + \new Staff = "PedalOrgan" << + \TimeKey + \clef "bass" + \new Voice { \PedalOrganMusic } + >> % end PedalOrgan Staff + >> +} % end Score context +@end lilypond --- SKELETON FILE -- -When you actually translate this file, please remove these lines as -well as all `UNTRANSLATED NODE: IGNORE ME' lines.