@c -*- coding: utf-8; mode: texinfo; -*-
@c This file is part of lilypond.tely
@ignore
    Translation of GIT committish: dc78324e8424699ec17df064941c0c787d4eb91c

    When revising a translation, copy the HEAD committish of the
    version that you are working on.  See TRANSLATION for details.
@end ignore

@node Putting it all together
@chapter Putting it all together

Este capítulo trata de los conceptos generales de LilyPond y de cómo
elaborar bloques @code{\score}.


@menu
* Extending the templates::     
* How LilyPond files work::     
* Score is a single musical expression::  
* An orchestral part::          
@end menu


@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?

Para empezar, tome la plantilla que le parezca más parecida a aquello que quiere
conseguir.  Digamos que quiere escribir algo para soprano y cello.
En este caso comenzaríamos con la plantilla @q{Notas y letra} (para la parte
de soprano).

@example
\version "2.11.15"
melodia = \relative c' @{
  \clef treble
  \key c \major
  \time 4/4

  a4 b c d
@}

texto = \lyricmode @{
  Aaa Bee Cee Dee
@}

\score@{
  <<
    \new Voice = "uno" @{
      \autoBeamOff
      \melodia
    @}
    \new Lyrics \lyricsto "uno" \text
  >>
  \layout @{ @}
  \midi @{ @}
@}
@end example

Ahora queremos añadir una parte de violoncello.  Veamos el ejemplo @q{Sólo notas}:

@example
\version "2.11.15"
melodia = \relative c' @{
  \clef treble
  \key c \major
  \time 4/4

  a4 b c d
@}

\score @{
\new Staff \melody
\layout @{ @}
\midi @{ @}
@}
@end example

No necesitamos dos comandos @code{\version}.  Vamos a necesitar la sección @code{melodia}.
No queremos dos secciones @code{\score} (si tuviésemos dos @code{\score}s, acabaríamos con las dos particellas por separado.
Queremos las dos juntas, como un dúo.
Dentro de la sección @code{\score}, no nos hacen falta dos 
@code{\layout} ni dos @code{\midi}.

Si nos limitásemos a copiar y pegar la sección @code{melodia}, acabaríamos con dos
secciones @code{melodia} separadas, así que vamos a cambiarles el nombre.  Llamaremos
@code{musicaSoprano} a la sección de la soprano y @code{musicaCello} a la sección del violoncello.
Al mismo tiempo cambiaremos el nombre de @code{texto}
a @code{letraSoprano}.  Recuerde cambiar el nombre a las dos apariciones de todos estos
nombres -- tanto la definición inicial (la parte @code{melodia = relative c' @{ }) --
como el uso de ese nombre (en la sección @code{\score}).

También aprovecharemos para cambiar el pentagrama de la parte del cello (los violoncellos
se escriben normalmente en clave de Fa).  Asimismo, cambiaremos algunas notas del cello.

@example
\version "2.11.15"
musicaSoprano = \relative c' @{
  \clef treble
  \key c \major
  \time 4/4

  a4 b c d
@}

letraSoprano = \lyricmode @{
  Aaa Bee Cee Dee
@}

musicaCello = \relative c @{
  \clef bass
  \key c \major
  \time 4/4

  d4 g fis8 e d4
@}

\score@{
  <<
    \new Voice = "uno" @{
      \autoBeamOff
      \sopranoMusic
    @}
    \new Lyrics \lyricsto "uno" \letraSoprano
  >>
  \layout @{ @}
  \midi @{ @}
@}
@end example

Esto tiene una pinta prometedora, pero la parte del cello no sale en la partitura
(no la hemos puesto en la sección @code{\score}).  Si quieremos que la parte
del cello aparezca debajo de la de soprano, tenemos que añadir

@example
\new Staff \musicaCello
@end example

@noindent
justo debajo de todo lo de la soprano.  También tenemos que poner @code{<<} y
@code{>>} antes y después de la música -- lo que  indica a LilyPond que hay
más de una cosa (en este caso, @code{Staff}) sucediendo al mismo tiempo -- .  La
@code{\score} se parecerá ahora a esto

@example
\score@{
  <<
    <<
      \new Voice = "uno" @{
        \autoBeamOff
        \sopranoMusic
      @}
      \new Lyrics \lyricsto "uno" \letraSoprano
    >>
    \new Staff \musicaCello
  >>
  \layout @{ @}
  \midi @{ @}
@}
@end example

@noindent
Esto parece un poco enrevesado; los márgenes están descuadrados.  Esto tiene
fácil solución.  Presentamos aquí la plantilla completa para soprano y cello.

@lilypond[quote,verbatim,ragged-right]
\version "2.11.15"
sopranoMusic = \relative c' {
  \clef treble
  \key c \major
  \time 4/4

  a4 b c d
}

sopranoLyrics = \lyricmode {
  Aaa Bee Cee Dee
}

celloMusic = \relative c {
  \clef bass
  \key c \major
  \time 4/4

  d4 g fis8 e d4
}

\score{
  <<
    <<
      \new Voice = "one" {
        \autoBeamOff
        \sopranoMusic
      }
      \new Lyrics \lyricsto "one" \sopranoLyrics
    >>
    \new Staff \celloMusic
  >>
  \layout { }
  \midi { }
}
@end lilypond


@node How LilyPond files work
@section How LilyPond 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 @ref{File structure}.

Casi todos los ejemplos del presente manual con pequeños fragmentos de código.  Por ejemplo

@example
c4 a b c
@end example

Como (esperamos) ya se habrá dado cuenta, esto no se puede compilar tal cual
está.  Estos ejemplos son sólo resúmenes de los ejemplos
completos.  Todos ellos necesitan, cuando menos, un par de llaves antes y después para que se puedan compilar

@example
@{
  c4 a b c
@}
@end example

Casi todos los ejemplos también usan el comando @code{\relative c'}
(o @code{c''}).  Esto no es necesario para conseguir que los ejemplos
simplemente se puedan compilar, pero casi siempre la salida tendrá un aspecto
muy extraño si omite el @code{\relative c'}.

@lilypond[quote,fragment,ragged-right,verbatim]
\relative c'' {
  c4 a b c
}
@end lilypond

Ahora nos encontramos con el único tropiezo de verdad: la entrada de
LilyPond en esta forma es realmente @emph{otra}
abreviatura.  Aunque se puede compilar y presenta la
salida correcta, es una abreviatura de

@example
\score @{
  \relative c'' @{
    c4 a b c
  @}
@}
@end example

Un @code{\score} debe comenzar con una única expresión
musical.  Recuerde que una expresión musical podía ser
cualquier cosa desde una sola nota hasta todo un

@example
@{
  \new GrandStaff <<
    introduzca aquí la partitura completa de una ópera de Wagner
  >>
@}
@end example

@noindent
Ya que todo está dentro de @code{@{ ... @}}, cuenta
como una sola expresión musical.

La @code{\score} puede contener otras cosas como

@example
\score @{
  @{ c'4 a b c' @}
  \layout @{ @}
  \midi @{ @}
  \header @{ @}
@}
@end example

@noindent
Hay personas que ponen algunos de estos comandos fuera del
bloque @code{\score} (por ejemplo, @code{\header} se
sitúa con frecuencia por encima del @code{\score}.  Es tan sólo
otra abreviatura que LilyPond acepta.

@cindex variables
@cindex identificadores

Otro atajo genial es la posibilidad de definir variables.
Todas las plantillas emplean lo siguiente:

@example
melodia = \relative c' @{
  c4 a b c
@}

\score @{
  @{ \melodia @}
@}
@end example

Cuando LilyPond examina este archivo, toma el valor de
@code{melodia} (todo lo que está después del signo igual) y lo
inserta dondequiera que ve
@code{\melodia}.  No se requiere un cuidado especial con los
nombres -- puede ser @code{melodia}, @code{global},
@code{manoderechadelpiano}, o @code{fulanomengano} --.  Puede
usar el nombre de variable que desee.  Para ver más
detalles, consulte
@ref{Saving typing with identifiers and functions}.

Para ver una definición completa
del formato de entrada, consulte @ref{File structure}.


@node Score is a single musical expression
@section Score is a single musical expression

En la sección anterior, @ref{How LilyPond files work},
pudimos ver la organización general de los archivos de entrada
de LilyPond.  Pero parece que nos saltamos la parte más importante:
¿cómo averiguamos qué escribir después de
@code{\score}?

No nos hemos saltado nada en absoluto.  El gran misterio es, sencillamente,
que no hay @emph{ningún} misterio.  La siguiente línea lo explica todo:

@quotation
@emph{Una @code{\score} debe comenzar con una única expresión musical.}
@end quotation

@noindent
Quizá encuentre útil dar un repaso a
@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 la expresión musical completa
    \new GrandStaff <<
      introduzca aquí la partitura completa de una ópera de Wagner
    >>
  @}   % esta llave da por terminada la expresión musical completa
  \layout @{ @}
@}
@end example

Una ópera de Wagner completa puede ser fácilmente el doble de larga que este manual,
por tanto vamos a hacer sólo un cantante y un piano.
No necesitamos un @code{GrandStaff} para este conjunto, así que
lo retiramos.  Sin ambargo, sí que @emph{necesitamos} un cantante y un piano.

@example
\score @{
  @{
    <<
      \new Staff = "cantante" <<
      >>
      \new PianoStaff = "piano" <<
      >>
    >>
  @}
  \layout @{ @}
@}
@end example

Recuerde que usamos @code{<<} y @code{>>} para presentar música
simultánea.  Y desde luego ¡queremos presentar las partes vocal y del
piano al mismo tiempo!

@example
\score @{
  @{
    <<
      \new Staff = "cantante" <<
        \new Voice = "vocal" @{ @}
      >>
      \new Lyrics \lyricsto vocal \new Lyrics @{ @}
      \new PianoStaff = "piano" <<
        \new Staff = "superior" @{ @}
        \new Staff = "inferior" @{ @}
      >>
    >>
  @}
  \layout @{ @}
@}
@end example

Ahora tenemos muchos más detalles.  Tenemos la pauta del cantante:
contiene una @code{Voice} o voz (en LilyPond, este término
hace referencia a un conjunto de notas, no necesariamente notas
vocales -- por ejemplo, un violín generalmente toca una
voz --) y el texto de la canción.  También tenemos una pauta de piano:
contiene un pentagrama superior (mano derecha) y un pentagrama
inferior (mano izquierda).

En este moento podríamos comenzar a meter las notas.  Dentro de las
llaves que siguen a @code{\new Voice = vocal},
podríamos empezar escibiendo

@example
\relative c'' @{
  a4 b c d
@}
@end example

Pero si lo hiciéramos, la sección @code{\score} se haría bastante
larga y sería más difícil comprender lo que ocurre.  En lugar de esto
utilizaremos identificadores o variables.

@example
melodia = @{ @}
texto = @{ @}
superior = @{ @}
inferior = @{ @}
\score @{
  @{
    <<
      \new Staff = "cantante" <<
        \new Voice = "vocal" @{ \melodia @}
      >>
      \new Lyrics \lyricsto vocal \new Lyrics @{ \texto @}
      \new PianoStaff = "piano" <<
        \new Staff = "superior" @{ \superior @}
        \new Staff = "inferior" @{ \inferior @}
      >>
    >>
  @}
  \layout @{ @}
@}
@end example

@noindent
Recuerde que puede usar casi cualquier nombre que se le antoje.  Las
limitaciones impuestas a los nombres de identificador se detallan en
@ref{File structure}.

Cuando escriba una sección @code{\score} o cuando la esté
leyendo, hágalo despacio y con cuidado.  Comience por
la capa exterior y luego trabaje sobre cada una de las capas
interiores.  Esto también sirve para ser estricto con los márgenes
-- ¡asegúrese de que en su editor de texto cada elemento de la misma capa
comienza en la misma posición horizontal! --.






@node An orchestral part
@section An orchestral part

En música orquestal, todas las notas se imprimen dos veces.  Una vez
en las particellas para los músicos, y otra para la partitura del
director.  Los identificadores se pueden usar para evitar la
duplicación del trabajo.  La música se escribe una vez y se almacena
en una variable.  El contenido de dicha variable se usa después para
generar tanto la particella como la partitura del director.

Es muy conveniente definir las notas en un archivo especial.  Por
ejemplo, supongamos que el archivo @file{trompa.ly} contiene la
siguiente parte de un dúo para trompa y fagot:

@example
notasTrompa = \relative c @{
  \time 2/4
  r4 f8 a cis4 f e d
@}
@end example

@noindent
Luego se hace una particella escribiendo en un archivo lo siguiente

@example
\include "trompa.ly"
\header @{
  instrument = "Trompa en Fa"
@}

@{
 \transpose f c' \notasTrompa
@}
@end example

La línea

@example
\include "trompa.ly"
@end example

@noindent
sustituye el contenido de @file{trompa.ly} en esta posición dentro del
archivo, así que @code{notasTrompa} se define con posterioridad.  El comando
@code{\transpose f@tie{}c'} indica que el argumento constituido por
@code{\notasTrompa} se debe transponer una quinta hacia arriba.  Lo que suena como
@samp{f} se escribe como @code{c'}, lo que corresponde con el tono de afinación de
una trompa normal en@tie{}Fa.  La transposición se puede ver en la
siguiente salida

@lilypond[quote,ragged-right]
\transpose f c' \relative c {
  \time 2/4
  r4 f8 a cis4 f e d
}
@end lilypond

En piezas para conjunto, con frecuencia una de las voces no suena durante muchos compases.
Esto queda denotado por un silencio especial, el silencio multicompás.
Se introduce con una @samp{R} mayúscula seguida de una duración
(@code{1}@tie{}en el caso de la redonda, @code{2}@tie{}en el caso de una blanca,
etc.).  Multiplicando la duración se pueden construir
silencios más largos.  Por ejemplo, este silencio ocupa
3@tie{}compases de 2/4

@example
R2*3
@end example

Cuando se imprime la particella tienen que comprimirse los silencios
multicompás.  Esto se hace estableciendo una variable en tiempo de
ejecución

@example
\set Score.skipBars = ##t
@end example

@noindent
Este comando establece el valor de la propiedad @code{skipBars} en el
contexto de @code{Score} a verdadero (@code{##t}).  Anteponiendo el silencio y
esta opción a la música anterior, llegamos al siguiente resultado

@lilypond[quote,ragged-right]
\transpose f c' \relative c {
  \time 2/4
  \set Score.skipBars = ##t
  R2*3
  r4 f8 a cis4 f e d
}
@end lilypond


Esta partitura se hace combinando toda la música junta.  Suponiendo
que la otra voz se encuentra dentro de @code{notasFagot} en el archivo
@file{fagot.ly}, la partitura se hace con

@example
\include "fagot.ly"
\include "trompa.ly"

<<
  \new Staff \notasTrompa
  \new Staff \notasFagot
>>
@end example

@noindent
lo que nos lleva a

@lilypond[quote,ragged-right]
\relative c <<
  \new Staff {
    \time 2/4 R2*3
    r4 f8 a cis4 f e d
  }
  \new Staff {
    \clef bass
    r4 d,8 f | gis4 c | b bes |
    a8 e f4 | g d | gis f
  }
>>
@end lilypond

Se puede encontrar una información más profunda sobre cómo preparar particellas y partituras
en el manual de notación; consulte @ref{Orchestral music}.

El establecimiento de variables en tiempo de ejecución (@q{propiedades}) se trata en
@ref{Changing context properties on the fly}.
