LilyPond

De PacoVila
Revisión del 11:09 11 ene 2013 de Paco (discusión | contribuciones) (LilyPond para informáticos)
Saltar a: navegación, buscar

LilyPond pertenece al proyecto GNU. En esta página puedes aprender qué es LilyPond, para qué sirve, cómo se instala, cómo se usa y qué otros recursos relacionados con el programa existen.

Qué es LilyPond

LilyPond es un programa de ordenador con un único objetivo: generar partituras musicales. Posiblemente sus dos principales caraterísticas son:

  • Genera automáticamente partituras de alta calidad
  • Es software libre

Respecto al primer punto: las partituras se generan a partir de un archivo de texto y en muchos casos tienen poca o ninguna necesidad de modificaciones posteriores por parte del usuario. En ello es similar al sistema LaTeX, excepto que éste se utiliza para componer tipográficamente documentos genéricos. LilyPond está especializado en la notacion musical del período de la práctica común: transcripciones de música del renacimiento, música barroca, clásica, romántica y también del siglo XX.

LilyPond puede hacer posiblemente toda la música de estos períodos: todas las claves, articulaciones, matices, ornamentos, compases, repeticiones, bajo cifrado, acordes de guitarra (diagramas de posiciones), hojas guía de acordes (lead sheets), canciones con letra, partituras orquestales, ossia, incipits, diagramas de pedales de arpa y registración para el acordeón, percusión, microtonos, indicaciones editoriales, notas al pie, tablas de contenido automáticas, y un largo etcétera (véase el índice del manual). Y lo hace directamente en PDF, así como en SVG, EPS o PNG y como MIDI.

Respecto al segundo punto: el hecho de que sea software libre es importante a causa de las implicaciones que eso tiene para el usuario, véase la entrada de Wikipedia dedicada al software libre.

LilyPond para informáticos

LilyPond es una especie de compilador: de forma similar a como hablamos de C como un lenguaje de programación, con su compilador correspondiente, LilyPond es un lenguaje y el programa actúa compilando los documentos de texto escritos en este lenguaje, produciendo a la salida un documento PDF de varias páginas.

Cada versión del programa LilyPond se lanza al mismo tiempo para todos los sistemas operativos principales: Unix (GNU/Linux y FreeBSD), MacOS X y Microsoft Windows. Está programado en C++ y Scheme. Utiliza Postscript como lenguaje de salida gráfica, que luego se convierte a los otros formatos.

Como informático, no te resultará difícil comprender la mecánica de utilización del programa. Los archivos de entrada se codifican en ASCII o UTF-8 y siguen una sintaxis que recuerda a la de TeX/LaTeX. Un ejemplo de partitura más o menos mínima, pero real y que puede usarse ya como plantilla, sería la siguiente:

\header {
  title = "Título"
  composer = "Autor"
}
\new Staff \relative f {
  c'4 d e f g1
}

una vez editado con un editor de texto como el bloc de notas, o mucho mejor: con un editor especializado como Frescobaldi, y guardado como prueba.ly, la instrucción del terminal

$ lilypond prueba.ly

produce un PDF con la partitura. En el editor Frescobaldi pulsamos Control+M para invocar al motor de tipografía lilypond.

El lenguaje permite definir variables con el valor de expresiones musicales y representa la estructura jerárquica de la partitura musical utilizando niveles de paréntesis en doble ángulo << >> para expresar simultaneidad y llaves curvas { } para expresar secuencias de expresiones.

El lenguaje contiene numerosas golosinas sintácticas, que lo adaptan a su uso particular por parte de los músicos. Por ejemplo, formalmente (aunque de forma simplificada) una pieza musical completa escrita en LilyPond tiene el siguiente aspecto:

\score {
  \new Staff { 
      \new Voice {
          % música ... 
    }
  }
}
\layout {
  %instrucciones de diseño de la página
}

donde se aprecia una estructura o "contexto" de partitura (\score) que contiene un pentagrama (Staff), que a su vez contiene una voz (Voice), que es la que contiene la música.

Ahora bien: la música se introduce automáticamente en un contexto de voz si éste no se declara explícitamente, por lo que podemos prescindir de la parte \new Voice {}. Por su parte, las voces siempre estarán en un contexto de pentagrama, y si no hay una esctructura \score también se dará implícitamente. Por tanto, la misma partitura podría haberse escrito así:

{
  % música ...
}

es decir, como una sola expresión musical. Un bloque \layout{} vacío es, asimismo, prescindible.

Cuando dijimos más arriba que la estructura formal expuesta estaba simplificada, lo hicimos para no mencionar allí otras dos estructuras de orden superior a la partitura, que son: Bookpart (parte de libro) y Book (libro). Todo esto está explicado exhaustivamente en el manual.

El lenguaje de la música

Modos

La sintaxis de LilyPond consiste en una serie de modos de entrada que dependen del contexto actual. Las expresiones están encerradas entre llaves curvas { } y se pueden asignar a variables. Habitualmente, si tenemos por ejemplo una canción sencilla, la parte de las notas se escribirá en el modo de predeterminado de entrada de notas y la letra de la canción en el modo de letra. Los modos de entrada también se dan implícitamente allí donde pueden deducirse del contexto. En el siguiente ejemplo vemos expresiones escritas en los distimtos modos:

% modo de notas (predeterminado)
{ \clef "bass" c'4( d' e'2 f'2 g'1) }
% modo de letra
\lyricmode { Nues -- tras vo -- _ ces se al -- zan, }
% modo de bajo cifrado
\figuremode { < 6 >4 < 7\+ >8 < 6+ [_!] > }
% modo de acordes
\chordmode { a1 a:m a:aug }
% modo de percusión
\drummode { cymc hh ss tomh }
% modo de marcado
\markup { \dynamic mf \italic cresc. }

(véase la sección correspondiente del manual)

Contextos

Los contextos son estructuras que tratan de reproducir o modelizar las estructuras correspondientes de la música. Unos contextos pueden contener a otros, como en la música real. Así, existen varios niveles de contextos, los de nivel superior son los contextos de libro (book), parte de libro (bookpart) y partitura (score). Algunos contextos se crean específicamente para contener a otros, como los de conjunto de pentagramas (varias clases: StaffGroup, ChoirStaff, PianoStaff). También existen contextos pensados para contener voces: pentagrama o pauta (Staff), tablatura (TabStaff), pauta rítmica (RhythmicStaff), tetragrama de canto gregoriano (VaticanaStaff) o pentagrama de notación mensural (MensuralStaff). Finalmente, están los contextos del nivel inferior: voz de música (Voice), letra (Lyrics), bajo cifrado ((FiguredBass), nombres de acordes (ChordNames) o diagramas de posiciones de acordes (FretBoards). Véase la explicación completa en la explicación de los contextos que se ofrece en el manual.

Grabadores

Ahora bien, ¿qué efecto tienen los contextos? Cada contexto tiene una serie de plug-ins llamados "grabadores" que se ocupan de dibujar su contenido. La lista de grabadores es muy larga.

Cuando creamos un contexto nuevo con la instrucción \new, por ejemplo

\new Staff {

una serie de grabadores lo construyen: indicación de compás, líneas de la pauta, líneas divisorias, hasta un total de 26 grabadores distintos. Entre todos ellos, son capaces de representar el conjunto de elementos explícitos o implícitos que lo forman.

El nombre de "grabadores" proviene de los artesanos que trazaban sobre placas de cobre los elementos musicales para después entintarlas e imprimir la música sobre el papel. En francés "gravure musicale" es edición de partituras, y en inglés "engraving" es tipografía musical.

Véase la lista completa de los 134 grabadores.

Estructura de la partitura