4.1.1 Introducción a la estructura de los archivos de LilyPond
Un ejemplo básico de archivo de entrada de LilyPond es el siguiente:
\version "2.25.20" \header { } \score { … expresión musical compuesta … % toda la música va aquí \layout { } \midi { } }
Existen muchas variaciones de este esquema básico, pero el ejemplo constituye un útil punto de partida.
Hasta el momento, ninguno de los ejemplos que ha podido ver
utiliza la instrucción \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:
\relative { c''4 a b c }
como una abreviatura de esta otra:
\book { \score { \new Staff { \new Voice { \relative { c''4 a b c } } } \layout { } } }
En otras palabras, si la entrada consta de una única expresión musical, LilyPond interpreta el archivo como si la expresión musical estuviera rodeada por un envoltorio hecho por las instrucciones que acabamos de ver.
¡Advertencia! Muchos de los ejemplos que aparecen en la
documentación de LilyPond omiten las instrucciones \new
Staff
y \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 Contextos y grabadores.
Nota: 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 \score
, dejando las demás en su
forma predeterminada.
Un bloque \score
siempre debe contener una expresión musical
única. Recuerde que una expresión musical podía ser cualquier
cosa entre una sola nota hasta una enorme expresión compuesta como
{ \new StaffGroup << … inserte aquí la partitura completa de una ópera de Wagner … >> }
Puesto que todo se encuentra dentro de { … }
,
cuenta como una expresión musical.
Como vimos anteriormente, el bloque \score
puede contener
otras cosas, tales como
\score { { c'4 a b c' } \header { } \layout { } \midi { } }
Observe que estas tres instrucciones (\header
,
\layout
y \midi
) son especiales: a diferencia del
resto de las instrucciones que comienzan con una barra invertida
(\
), no son expresiones musicales y no forman parte
de ninguna expresión musical. Por tanto, se pueden situar dentro
de un bloque \score
o fuera de él. De hecho, estas
instrucciones se sitúan por lo general fuera del bloque
\score
(por ejemplo, \header
se suele colocar antes
de la instrucción \score
, como muestra el ejemplo que
aparece al principio de la sección.
Dos instrucciones más que no hemos visto aún son \layout {
}
y \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 Disposición de la
partitura y en Creación de salida MIDI.
Podemos escribir varios bloques \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 \book
, se creará una
implícitamente. Sin embargo, si quiere archivos de salida
separados a partir de un único archivo .ly, entonces es
necesario utilizar la instrucción \book
para separar las
distintas secciones: cada bloque \book
produce un archivo
de salida distinto.
En resumen:
Cada bloque \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 \book
de forma implícita.
Cada bloque \score
es un trozo de música separado dentro
de un bloque \book
.
Cada bloque \layout
afecta al bloque \score
o
\book
dentro del cual aparece (es decir, un bloque
\layout
dentro de un bloque \score
afecta solamente
a ese bloque \score
, pero un bloque \layout
fuera
de un bloque \score
(que por ello está dentro de un bloque
\book
, ya sea explícita o implícitamente) afecta a los
bloques \score
que están dentro de ese \book
.
Para ver más detalles, consulte Varias partituras en un libro.
Otro magnífico atajo es la posibilidad de definir variables como se muestra en Organizar las piezas mediante variables. Todas las plantillas emplean lo siguiente:
melodia = \relative { c'4 a b c } \score { \melodia }
Cuando LilyPond examina este archivo, toma el valor de
melodia
(todo lo que está después del signo igual) y lo
inserta dondequiera que ve \melodia
. No se requiere un
cuidado especial con el nombre (puede ser melodia
,
global
, CompasArmadura
, manoderechadelpiano
o fulanomengano
o cualquier otro). 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. Para ver
más detalles, consulte
Ahorrar tecleo mediante variables y funciones. Las
limitaciones exactas que afectan a los nombres de variable se
detallan en Estructura del archivo.
Véase también
Para ver una definición completa del formato del código de entrada, consulte Estructura del archivo.