X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fes%2Fuser%2Ffundamental.itely;fp=Documentation%2Fes%2Fuser%2Ffundamental.itely;h=0000000000000000000000000000000000000000;hb=e90f0536f9be39ada0bef0aeb0d275dec3b2fb5b;hp=15351cbc65247f0953417db570d82350a33b05c4;hpb=a8c9e8a7ca320ab0df5fd32e717fd62cd7635ce6;p=lilypond.git diff --git a/Documentation/es/user/fundamental.itely b/Documentation/es/user/fundamental.itely deleted file mode 100644 index 15351cbc65..0000000000 --- a/Documentation/es/user/fundamental.itely +++ /dev/null @@ -1,2994 +0,0 @@ -@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*- -@c This file is part of lilypond-learning.tely -@ignore - Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723 - - 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.12.0" - - -@node Fundamental concepts -@chapter Fundamental concepts - -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 input files work:: -* Voices contain music:: -* Contexts and engravers:: -* Extending the templates:: -@end menu - - -@node How LilyPond input files work -@section How LilyPond input files work - -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:: -@end menu - -@node Introduction to the LilyPond file structure -@subsection Introduction to the LilyPond file structure - -@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 StaffGroup << - @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. - -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 - -@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 StaffGroup << - @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{StaffGroup} (que simplemente agrupa un cierto -número de pautas con un corchete a la izquierda) para este conjunto, -así que lo retiramos. Sin embargo, @emph{sí} 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 - -@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 - -@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 - -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:: -@end menu - -@node I'm hearing Voices -@subsection I'm hearing Voices - -@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 produce -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 no se 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 - - -@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 producen: - -@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 behavior or behavior 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 - - -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 puedan -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 estribilloA (la primera parte del -estribillo) sobre el mismo pentagrama, mientras un segundo pentagrama -aparece en paralelo con él para estribilloB (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 -<< - \notas_estribilloA - \new Lyrics \lyricsto estrofa @{ - \letra_estribilloA - @} - \new Staff << - \new Voice = "estribilloB" @{ - \notas_estribilloB - @} - \new Lyrics \lyricsto "estribilloB" @{ - \letra_estribilloB - @} - >> ->> -@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 << - \new 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 - -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 -* Contexts explained:: -* Creating contexts:: -* Engravers explained:: -* Modifying context properties:: -* Adding and removing engravers:: -@end menu - -@node Contexts explained -@subsection Contexts explained - -@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 - -@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 - -@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 - -@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 default 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}. - -@subsubheading 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}. - -@subsubheading 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 - -@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}. - - -@node Extending the templates -@section Extending the templates - -Ha leído el tutorial y ahora sabe escribir música. Pero ¿cómo puede -poner los pentagramas que quiere? Las plantillas están muy bien, pero -¿qué ocurre si quiere algo que no está en una de ellas? Bien, puede -encontrar montañas de plantillas (véase @ref{Templates}) que le pueden -servir como punto de partida. Pero ¿y si quiere algo que no está -contemplado aquí? Continúe leyendo. - - -@menu -* Soprano and cello:: -* Four-part SATB vocal score:: -* Building a score from scratch:: -@end menu - -@node Soprano and cello -@subsection Soprano and cello - -@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 - -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 } -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 fis2 | -} -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 - - -@node Building a score from scratch -@subsection Building a score from scratch - -@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 d 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 { \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