1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
2 @c This file is part of lilypond-learning.tely
4 Translation of GIT committish: aae416a0211bad0bbed5c82b91d80a83d21e8054
6 When revising a translation, copy the HEAD committish of the
7 version that you are working on. See TRANSLATION for details.
11 @node Fundamental concepts
12 @chapter Fundamental concepts
14 UNTRANSLATED NODE: IGNORE ME
17 * How LilyPond files work::
18 * Voices contain music::
19 * Contexts and engravers::
20 * Extending the templates::
22 @node How LilyPond files work
23 @section How LilyPond files work
25 El formato de entrada de LilyPond es bastante libre en su forma y concede a los usuarios con experiencia
26 mucha flexibilidad para estructurar sus archivos de la forma que deseen.
27 Sin embargo, toda esta flexibilidad puede hacer que las cosas se vuelvan confusas para
28 los nuevos usuarios. Esta sección le va a explicar parte de esta estructura, pero
29 puede obviar ciertos detalles en aras de la simplicidad. Para ver una
30 descripción completa del formato de entrada, consulte @ruser{File structure}.
32 Casi todos los ejemplos del presente manual con pequeños fragmentos de código. Por ejemplo
38 Como (esperamos) ya se habrá dado cuenta, esto no se puede compilar tal cual
39 está. Estos ejemplos son sólo resúmenes de los ejemplos
40 completos. Todos ellos necesitan, cuando menos, un par de llaves antes y después para que se puedan compilar
48 Casi todos los ejemplos también usan el comando @code{\relative c'}
49 (o @code{c''}). Esto no es necesario para conseguir que los ejemplos
50 simplemente se puedan compilar, pero casi siempre la salida tendrá un aspecto
51 muy extraño si omite el @code{\relative c'}.
53 @lilypond[quote,fragment,ragged-right,verbatim]
59 Ahora nos encontramos con el único tropiezo de verdad: la entrada de
60 LilyPond en esta forma es realmente @emph{otra}
61 abreviatura. Aunque se puede compilar y presenta la
62 salida correcta, es una abreviatura de
72 Un @code{\score} debe comenzar con una única expresión
73 musical. Recuerde que una expresión musical podía ser
74 cualquier cosa desde una sola nota hasta todo un
79 introduzca aquí la partitura completa de una ópera de Wagner
85 Ya que todo está dentro de @code{@{ ... @}}, cuenta
86 como una sola expresión musical.
88 La @code{\score} puede contener otras cosas como
100 Hay personas que ponen algunos de estos comandos fuera del
101 bloque @code{\score} (por ejemplo, @code{\header} se
102 sitúa con frecuencia por encima del @code{\score}. Es tan sólo
103 otra abreviatura que LilyPond acepta.
106 @cindex identificadores
108 Otro atajo genial es la posibilidad de definir variables.
109 Todas las plantillas emplean lo siguiente:
112 melodia = \relative c' @{
121 Cuando LilyPond examina este archivo, toma el valor de
122 @code{melodia} (todo lo que está después del signo igual) y lo
123 inserta dondequiera que ve
124 @code{\melodia}. No se requiere un cuidado especial con los
125 nombres -- puede ser @code{melodia}, @code{global},
126 @code{manoderechadelpiano}, o @code{fulanomengano} --. Puede
127 usar el nombre de variable que desee. Para ver más
129 @ruser{Saving typing with identifiers and functions}.
131 Para ver una definición completa
132 del formato de entrada, consulte @ruser{File structure}.
135 * Introduction to the LilyPond file structure::
136 * Score is a (single) compound musical expression::
137 * Nesting music expressions::
138 * On the un-nestedness of brackets and ties::
140 @node Introduction to the LilyPond file structure
141 @subsection Introduction to the LilyPond file structure
143 UNTRANSLATED NODE: IGNORE ME
145 @node Score is a (single) compound musical expression
146 @subsection Score is a (single) compound musical expression
148 En la sección anterior, @ruser{How LilyPond files work},
149 pudimos ver la organización general de los archivos de entrada
150 de LilyPond. Pero parece que nos saltamos la parte más importante:
151 ¿cómo averiguamos qué escribir después de
154 No nos hemos saltado nada en absoluto. El gran misterio es, sencillamente,
155 que no hay @emph{ningún} misterio. La siguiente línea lo explica
159 @emph{Una @code{\score} debe comenzar con una única expresión musical.}
163 Quizá encuentre útil dar un repaso a
164 @ruser{Music expressions explained}. En esta sección, vimos
165 cómo elaborar grandes expresiones musicales a partir de pequeñas
166 piezas -- comenzábamos con notas, luego acordes, etc. --. Ahora
167 partiremos de una gran expresión musical y
168 recorreremos el camino inverso hacia abajo.
172 @{ % esta llave da inicio a la expresión musical completa
174 introduzca aquí la partitura completa de una ópera de Wagner
176 @} % esta llave da por terminada la expresión musical completa
181 Una ópera de Wagner completa puede ser fácilmente el doble de larga que este manual,
182 por tanto vamos a hacer sólo un cantante y un piano.
183 No necesitamos un @code{GrandStaff} para este conjunto, así que
184 lo retiramos. Sin embargo, sí que @emph{necesitamos}
185 un cantante y un piano.
191 \new Staff = "cantante" <<
193 \new PianoStaff = "piano" <<
201 Recuerde que usamos @code{<<} y @code{>>} para presentar música
202 simultánea. Y desde luego ¡queremos presentar las partes vocal y del
203 piano al mismo tiempo!
209 \new Staff = "cantante" <<
210 \new Voice = "vocal" @{ @}
212 \new Lyrics \lyricsto vocal \new Lyrics @{ @}
213 \new PianoStaff = "piano" <<
214 \new Staff = "superior" @{ @}
215 \new Staff = "inferior" @{ @}
223 Ahora tenemos muchos más detalles. Tenemos la pauta del cantante:
224 contiene una @code{Voice} o voz (en LilyPond, este término
225 hace referencia a un conjunto de notas, no necesariamente notas
226 vocales -- por ejemplo, un violín generalmente toca una
227 voz --) y el texto de la canción. También tenemos una pauta de piano:
228 contiene un pentagrama superior (mano derecha) y un pentagrama
229 inferior (mano izquierda).
231 En este momento podríamos comenzar a meter las notas. Dentro de las
232 llaves que siguen a @code{\new Voice = vocal},
233 podríamos empezar escribiendo
241 Pero si lo hiciéramos, la sección @code{\score} se haría bastante
242 larga y sería más difícil comprender lo que ocurre. En lugar de esto
243 utilizaremos identificadores
254 \new Staff = "cantante" <<
255 \new Voice = "vocal" @{ \melodia @}
257 \new Lyrics \lyricsto vocal \new Lyrics @{ \texto @}
258 \new PianoStaff = "piano" <<
259 \new Staff = "superior" @{ \superior @}
260 \new Staff = "inferior" @{ \inferior @}
269 Recuerde que puede usar casi cualquier nombre que se le antoje. Las
270 limitaciones impuestas a los nombres de identificador se detallan en
271 @ruser{File structure}.
273 Cuando escriba una sección @code{\score} o cuando la esté
274 leyendo, hágalo despacio y con cuidado. Comience por
275 la capa exterior y luego trabaje sobre cada una de las capas
276 interiores. Esto también sirve para ser estricto con los márgenes
277 -- ¡asegúrese de que en su editor de texto cada elemento de la misma capa
279 posición horizontal! --.
282 @node Nesting music expressions
283 @subsection Nesting music expressions
285 UNTRANSLATED NODE: IGNORE ME
288 @node On the un-nestedness of brackets and ties
289 @subsection On the un-nestedness of brackets and ties
291 UNTRANSLATED NODE: IGNORE ME
293 @node Voices contain music
294 @section Voices contain music
296 UNTRANSLATED NODE: IGNORE ME
299 * I'm hearing Voices::
300 * Explicitly instantiating voices::
301 * Voices and vocals::
303 @node I'm hearing Voices
304 @subsection I'm hearing Voices
306 UNTRANSLATED NODE: IGNORE ME
308 @node Explicitly instantiating voices
309 @subsection Explicitly instantiating voices
311 UNTRANSLATED NODE: IGNORE ME
313 @node Voices and vocals
314 @subsection Voices and vocals
316 UNTRANSLATED NODE: IGNORE ME
318 @node Contexts and engravers
319 @section Contexts and engravers
321 UNTRANSLATED NODE: IGNORE ME
324 * Contexts explained::
325 * Creating contexts::
326 * Engravers explained::
327 * Modifying context properties::
328 * Adding and removing engravers::
330 @node Contexts explained
331 @subsection Contexts explained
333 Cuando se imprime la música, se tienen que añadir a la salida una gran cantidad de elementos
334 notacionales. Por ejemplo, compare la entrada y la salida del siguiente ejemplo:
336 @lilypond[quote,verbatim,relative=2,fragment]
340 La entrada es bastante escueta, pero en la salida se añaden líneas divisorias, alteraciones accidentales,
341 la clave y la indicación de compás. LilyPond @emph{interpreta} la
342 entrada. En esta fase se inspecciona la información musical en orden temporal,
343 de forma parecida a la lectura de una partitura de izquierda a derecha. Mientras se lee
344 la entrada, el programa recuerda dónde se encuentran los límites de los compases, y qué notas
345 requieren alteraciones explícitas. Esta información se puede presentar sobre varios
346 niveles. Por ejemplo, el efecto de una alteración accidental se encuentra limitada
347 a un solo pentagrama, mientras que una barra divisoria debe estar sincronizada a través
348 de la partitura de arriba a abajo.
350 Dentro de LilyPond, estas reglas y pequeñas porciones de información se agrupan en
351 @emph{Contexts}. Algunos ejemplos de contextos son @code{Voice} (Voz),
352 @code{Staff} (Pauta o pentagrama) y @code{Score} (Partitura). Los contextos son jerárquicos, por
353 ejemplo: un @code{Staff} contener muchas @code{Voice}s, y una
354 @code{Score} puede contener muchos contextos de @code{Staff}.
357 @sourceimage{context-example,5cm,,}
360 Cada contexto asume la responsabilidad de imponer algunas reglas de notación,
361 creando ciertos objetos de notación y manteniendo las propiedades
362 asociadas. Por ejemplo, el contexto @code{Voice} puede introducir una alteración
363 accidental y entonces el contexto @code{Staff} mantiene la regla de mostrar o
364 suprimir la alteración para el resto del compás. La
365 sincronización de las líneas divisorias se gestiona dentro del contexto de la partitura, @code{Score}.
367 Sin embargo, en algunas músicas posiblemente no queramos que las líneas divisorias estén
368 sincronizada (pensemos en una partitura polimétrica en compases de 4/4 y de 3/4). En tales casos,
369 debemos modificar los ajustes por omisión de los contextos @code{Score}
372 Para partituras muy sencillas, los contextos se crean implícitamente y no debemos
373 preocuparnos por ellos. Para piezas mayores, como por ejemplo cualquiera que tenga más de un pentagrama,
374 los contextos se deben crear explícitamente para asegurarnos
375 de que tendremos la cantidad exacta de pentagramas que necesitamos,
376 y que están en el orden correcto. Para tipografiar piezas
377 con notación especializada, puede ser útil modificar contextos existentes
378 o definir unos nuevos.
381 En la referencia del programa se encuentra una descripción completa de todos los contextos que están disponibles,
384 @internalsref{Contexts}.
387 Traducción @expansion{} Contexto.
390 @c [TODO: describe propagation]
392 @node Creating contexts
393 @subsection Creating contexts
395 Para partituras que sólo tienen una voz y un pentagrama, los contextos se
396 crean automáticamente. Para partituras más complejas, es necesario crearlos
397 a mano. Existen tres instrucciones que hacen esto.
402 La instrucción más fácil es @code{\new}, y es también la más rápida de escribir.
403 Se antepone a una expresión musical, por ejemplo
406 @cindex nuevos, contextos
407 @cindex Contexto, creación de
410 \new @var{tipo} @var{expresión_musical}
414 donde @var{tipo} es el nombre de un contexto (como @code{Staff} o
415 @code{Voice}). Esta instrucción crea un contexto nuevo, y empieza a
416 interpretar la @var{expresión_musical} con él.
418 Una aplicación práctica de @code{\new} es una partitura con muchos pentagramas.
419 Cada parte que debe ir en su propio pentagrama, va precedida de
422 @lilypond[quote,verbatim,relative=2,ragged-right,fragment]
429 La instrucción @code{\new} puede también dar nombre al contexto,
432 \new @var{tipo} = @var{identificador} @var{música}
434 Sin embargo, este nombre especificado por el usuario sólo se utiliza si no hay ya otro contexto
435 anterior con el mismo nombre.
441 Como @code{\new}, la instrucción @code{\context} también dirige una expresión musical
442 a un objeto de contexto, pero da al contexto un nombre explícito. La sintaxis
446 \context @var{tipo} = @var{identificador} @var{música}
449 En esta forma, la instrucción buscará un contexto existente del @var{tipo} especificado
450 que tenga el nombre @var{identificador}. Si ese contexto aún no existe, se crea
451 un contexto nuevo con el nombre especificado. Esto es útil si nos vamos a referir
452 más tarde al contexto. Por ejemplo, cuando
453 se escribe la letra, la melodía está dentro de un contexto con nombre
456 \context Voice = "@b{tenor}" @var{música}
460 de forma que los textos se puedan alienar correctamente con sus notas,
463 \new Lyrics \lyricsto "@b{tenor}" @var{letra}
468 Otro uso posible de los contextos con nombre es la fusión de dos expresiones musicales
469 distintas en un solo contexto. En el siguiente ejemplo,
470 se introducen por separado las articulaciones y las notas,
474 decoracion = @{ s4-. s4-> @}
477 se combinan enviando los dos al mismo contexto @code{Voice},
481 \new Staff \context Voice = "A" \musica
482 \context Voice = "A" \decoracion
485 @lilypond[quote,ragged-right]
489 \new Staff \context Voice = "A" \music
490 \context Voice = "A" \arts
494 Con este mecanismo, es posible definir un Urtext (una edición
495 original), con la posibilidad de poner articulaciones distintas sobre las
498 @cindex crear contextos
501 La tercera instrucción para crear contextos es
503 \context @var{tipo} @var{música}
508 Esto es similar a @code{\context} con @code{= @var{identificador}}, pero se corresponde con
509 cualquier contexto del tipo @var{tipo}, sin importar qué nombre se le ha dado.
511 Esta variante se usa con expresiones musicales que se pueden interpretar en
512 varios niveles. Por ejemplo, la instrucción @code{\applyOutput} (véase
513 @ref{Running a function on all layout objects}). Sin una instrucción
514 @code{\context} explícita, normalmente se aplicaría a @code{Voice}
517 \applyOutput #'@var{contexto} #@var{función} % aplicar al contexto Voice
520 Para que se interprete dentro de los niveles de @code{Score} o @code{Staff}, utilice las siguientes
524 \applyOutput #'Score #@var{función}
525 \applyOutput #'Staff #@var{función}
530 @node Engravers explained
531 @subsection Engravers explained
533 UNTRANSLATED NODE: IGNORE ME
535 @node Modifying context properties
536 @subsection Modifying context properties
540 @cindex changing properties
542 Cada contexto puede tener diferentes @emph{propiedades} o variables contenidas
543 en dicho contexto. Se pueden cambiar mientras se desarrolla la fase de interpretación.
544 Esto se consigue insertando la instrucción @code{\set} en la música,
547 \set @var{contexto}.@var{propiedad} = #@var{valor}
551 @lilypond[quote,verbatim,relative=2,fragment]
553 \set Score.skipBars = ##t
557 Esta instrucción hace que se salten los compases que no tienen ninguna nota. El resultado es que
558 los silencios multicompás se comprimen. El valor asignado es un objeto del lenguaje Scheme. En
559 este caso, es @code{#t}, el valor booleano Verdadero.
561 Si el argumento @var{contexto} se deja en blanco, entonces se utiliza el contexto actual más bajo
562 (normalmente @code{ChordNames}, @code{Voice} o
563 @code{Lyrics}). En este ejemplo,
565 @lilypond[quote,verbatim,relative=2,fragment]
567 \set autoBeaming = ##f
572 el argumento @var{contexto} para la instrucción @code{\set} está omitido, por tanto
573 el barrado automático está desactivado en la @internalsref{Voice} (voz) actual. Fíjese en que
574 el contexto más bajo no siempre contiene la propiedad que quiere
575 cambiar. Por ejemplo, si intenta establecer la propiedad @code{skipBars}
576 (del contexto más bajo, en este caso @code{Voice}) no se producirá ningún
579 @lilypond[quote,verbatim,relative=2,fragment]
585 Los contextos son jerárquicos, de forma que si se especificó un contexto mayor, por
586 ejemplo @code{Staff}, entonces el cambio también se aplicaría a todos los
587 @code{Voice}s o contextos de voz en el pentagrama actual. El cambio se aplica
588 @q{al vuelo}, mientras transcurre la música, de manera que el ajuste sólo afecta al segundo
593 También existe una instrucción @code{\unset},
595 \unset @var{contexto}.@var{propiedad}
599 que quita la definición de la @var{propiedad}. Esta instrucción quita
600 la definición solamente si está establecida dentro del @var{contexto} especificado, por lo que
603 \set Staff.autoBeaming = ##f
607 introduce un ajuste de propiedad en el nivel del contexto @code{Staff}. El ajuste también se aplica
608 a la @code{Voice} actual. Sin embargo,
611 \unset Voice.autoBeaming
615 no tiene ningún efecto. Para cancelar este ajuste, el @code{\unset}
616 se debe especificar en el mismo nivel que el @code{\set} original. En
617 otras palabras, deshacer el efecto de @code{Staff.autoBeaming = ##f}
620 \unset Staff.autoBeaming
623 Igual que @code{\set}, el argumento @var{contexto} no tiene que especificarse para un contexto
624 que está en la parte más baja, por lo que las dos instrucciones
627 \set Voice.autoBeaming = ##t
628 \set autoBeaming = ##t
636 Los ajustes que se quieren aplicar a un paso de tiempo único se pueden escribir
637 con @code{\once}, por ejemplo en
639 @lilypond[quote,verbatim,relative=2,fragment]
641 \once \set fontSize = #4.7
646 la propiedad @code{fontSize} pierde su valor automáticamente después de la segunda
649 En la referencia del programa hay una descripción detallada de todas las propiedades de contexto disponibles,
652 @internalsref{Tunable context properties}.
655 Traducción @expansion{} propiedades de contexto ajustables.
658 @node Adding and removing engravers
659 @subsection Adding and removing engravers
661 UNTRANSLATED NODE: IGNORE ME
663 @subsubsection Changing a single context
665 @subsubsection Changing all contexts of the same type
666 @node Extending the templates
667 @section Extending the templates
669 Ha leído el tutorial y ahora sabe escribir música. Pero ¿cómo puede poner
670 los pentagramas que quiere? Las plantillas están muy bien, pero ¿qué ocurre
671 si quiere algo que no está en una de ellas?
673 Para empezar, tome la plantilla que le parezca más parecida a aquello que quiere
674 conseguir. Digamos que quiere escribir algo para soprano y cello.
675 En este caso comenzaríamos con la plantilla @q{Notas y letra} (para la parte
680 melodia = \relative c' @{
688 texto = \lyricmode @{
694 \new Voice = "uno" @{
698 \new Lyrics \lyricsto "uno" \text
705 Ahora queremos añadir una parte de violoncello. Veamos el ejemplo @q{Sólo notas}:
709 melodia = \relative c' @{
724 No necesitamos dos comandos @code{\version}. Vamos a necesitar la sección @code{melodia}.
725 No queremos dos secciones @code{\score} (si tuviésemos dos @code{\score}s, acabaríamos con las dos particellas por separado.
726 Queremos las dos juntas, como un dúo.
727 Dentro de la sección @code{\score}, no nos hacen falta dos
728 @code{\layout} ni dos @code{\midi}.
730 Si nos limitásemos a copiar y pegar la sección @code{melodia}, acabaríamos con dos
731 secciones @code{melodia} separadas, así que vamos a cambiarles el nombre. Llamaremos
732 @code{musicaSoprano} a la sección de la soprano y @code{musicaCello} a la sección del violoncello.
733 Al mismo tiempo cambiaremos el nombre de @code{texto}
734 a @code{letraSoprano}. Recuerde cambiar el nombre a las dos apariciones de todos estos
735 nombres -- tanto la definición inicial (la
736 parte @code{melodia = relative c' @{ }) --
737 como el uso de ese nombre (en la sección @code{\score}).
739 También aprovecharemos para cambiar el pentagrama de la parte del cello (los violoncellos
740 se escriben normalmente en clave de Fa). Asimismo, cambiaremos algunas
745 musicaSoprano = \relative c' @{
753 letraSoprano = \lyricmode @{
757 musicaCello = \relative c @{
767 \new Voice = "uno" @{
771 \new Lyrics \lyricsto "uno" \letraSoprano
778 Esto tiene una pinta prometedora, pero la parte del cello no sale en la partitura
779 (no la hemos puesto en la sección @code{\score}). Si queremos que la parte
780 del cello aparezca debajo de la de soprano, tenemos que añadir
783 \new Staff \musicaCello
787 justo debajo de todo lo de la soprano. También tenemos que poner @code{<<} y
788 @code{>>} antes y después de la música -- lo que indica a LilyPond que hay
789 más de una cosa (en este caso, @code{Staff}) sucediendo al mismo tiempo -- . La
790 @code{\score} se parecerá ahora a esto
796 \new Voice = "uno" @{
800 \new Lyrics \lyricsto "uno" \letraSoprano
802 \new Staff \musicaCello
810 Esto parece un poco enrevesado; los márgenes están descuadrados. Esto tiene
811 fácil solución. Presentamos aquí la plantilla completa para soprano y cello.
813 @lilypond[quote,verbatim,ragged-right]
815 sopranoMusic = \relative c' {
823 sopranoLyrics = \lyricmode {
827 celloMusic = \relative c {
842 \new Lyrics \lyricsto "one" \sopranoLyrics
844 \new Staff \celloMusic
852 * Soprano and cello::
853 * Four-part SATB vocal score::
854 * Building a score from scratch::
856 @node Soprano and cello
857 @subsection Soprano and cello
859 UNTRANSLATED NODE: IGNORE ME
861 @node Four-part SATB vocal score
862 @subsection Four-part SATB vocal score
864 UNTRANSLATED NODE: IGNORE ME
866 @node Building a score from scratch
867 @subsection Building a score from scratch
869 UNTRANSLATED NODE: IGNORE ME
873 When you actually translate this file, please remove these lines as
874 well as all `UNTRANSLATED NODE: IGNORE ME' lines.