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.21"

\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.


Manual de aprendizaje de GNU LilyPond v2.25.21 (rama de desarrollo).