LilyPond

Programa de software libre para edición informática de partituras.
(Redirigido desde «GNU LilyPond»)

GNU LilyPond es un programa de software libre para edición de partituras para todos los sistemas operativos usuales; utiliza una sencilla notación de texto como entrada, y produce una salida en el formato predeterminado PDF (a través de PostScript) y también en SVG, PNG y MIDI. A diferencia de algunos programas comerciales de edición de partituras, LilyPond no incluye su propia interfaz gráfica para la confección de partituras; en lugar de ser un programa interactivo, funciona por línea de comandos invocando a un archivo fuente como argumento, como un compilador. Sin embargo tiene el propósito de producir una salida de la misma calidad que las partituras elaboradas profesionalmente y mejor que muchas partituras comerciales hechas con otros programas de ordenador. La orden de consola o terminal para producir una partitura en formato PDF a partir del documento partitura.ly que contiene el código fuente, sería el siguiente:

GNU LilyPond
Parte de Proyecto GNU
Official LilyPond Logo - Modified
Información general
Tipo de programa Notación de música
Autor Han-Wen Nienhuys, Jan Nieuwenhuizen
Desarrollador David Kastrup, Janek Warchoł, Mike Solomon, Phil Holmes
Lanzamiento inicial 1 de agosto de 1997
Licencia GNU General Public License, versión 3
Estado actual Con soporte
Idiomas español, inglés, francés, alemán
Información técnica
Programado en C++, Scheme, Metafont, PostScript, con partes en Python
Versiones
Última versión estable 2.24.319 de noviembre de 2023
Última versión en pruebas 2.25.1520 de abril de 2024
Archivos legibles
LilyPond music score
Archivos editables
Enlaces
Les Néréides, de Arthur Gray, partitura generada por LilyPond.
~$ lilypond partitura.ly

o hacer doble clic sobre el icono del documento, en un sistema Windows.

La mayoría de los usuarios utilizan LilyPond interactuando de forma visual con la partitura a través de algún tipo de entorno amigable como el editor Frescobaldi, que resalta la sintaxis, llama al ejecutable lilypond sobre el documento actual al pulsar una sola tecla y presenta el resultado en PDF sobre un panel de vista previa con funcionalidad de apuntar y pulsar directa e inversa. El equipo de desarrollo de LilyPond recomienda que todos los nuevos usuarios instalen el programa Frescobaldi u otro similar para utilizar LilyPond a través del mismo.

Una de las metas principales de LilyPond es la producción de partituras de una calidad inusualmente alta que se componen tipográficamente según las reglas de disposición tradicionales de la época en que las partituras se grababan a mano. Frecuentemente se considera que produce una salida de mejor calidad que los principales programas comerciales, y en los últimos años no ha cesado de mejorar.

El proyecto Mutopia, que distribuye partituras gratuitas, utiliza LilyPond para componer tipográficamente la música, igual que Musipedia, una enciclopedia colaborativa de música. WikiTeX, una interfaz de MediaWiki, posibilita la edición de notación de LilyPond directamente en los artículos del wiki.

Excelencia en tipografía musical editar

LilyPond está diseñado como un sistema de grabado musical automatizado; las mejores disposiciones para la música se obtienen a partir del código de entrada siguiendo un algoritmo en el que un amplio abanico de posibilidades de disposición de la música compiten entre sí siguiendo un sistema de puntuaciones como en un concurso de belleza.[1]

Algunos de los criterios que colocan a LilyPond en una situación distinguida de otras soluciones para la confección de partituras musicales, son los siguientes:

  • Escalado óptico de la fuente tipográfica: dependiendo del tamaño de la fuente, se altera ligeramente el diseño de la fuente (lo que es una funcionalidad por la que la fuente Computer Modern de D. Knuth es bien conocida): las cabezas de las notas se hacen más redondeadas, y las líneas relativamente más gruesas.
  • Espaciado óptico (véase el ensayo[2]​), en que las direcciones de las plicas se tienen en cuenta para el espaciado de las notas subsiguientes. Debe observarse que esto es algo distinto a la posibilidad de Sibelius incorrectamente denominada Optical (tm) Spacing.
  • Espaciado proporcional, en que la extensión horizontal de una figura es exactamente igual a su duración, lo que es un requisito para muchas partituras de música contemporánea. Ningún otro programa contempla esto de serie.
  • Las líneas adicionales nunca colisionan y en situaciones de estrechez se acortan para dejar espacio a las alteraciones accidentales.
  • Las direcciones de las plicas en las notas centrales siguen a las de las notas circundantes.

Otras características de LilyPond son:

  • Espaciado y saltos automáticos de línea y de página.
  • Manejo de la separación entre pentagramas mediante una línea de horizonte (skyline) ajustada a los objetos visibles.
  • Manejo de colisiones polifónicas para las notas, puntillos y silencios.
  • Colocación automática de alteraciones accidentales, barras, ligaduras de expresión y de unión.
  • Los usuarios no requieren experiencia tipográfica para producir una excelente notación.
  • No se requiere interacción por parte del usuario durante la ejecución. Se puede automatizar la ejecución del programa, lo que es conveniente para la conversión en masa de bases de datos de música digitalizada y para la impresión de composiciones algorítmicas.
  • Las fuentes tipográficas Feta, Parmesan y Emmentaler han sido preparadas especialmente para LilyPond, y se diseñaron cuidadosamente para que emularan las mejores partituras grabadas a mano. Está disponible como una fuente tipográfica escalable en formato OTF, y también como una Metafont.

Características de arquitectura interna editar

GNU LilyPond está escrito en C++ y construido mediante una biblioteca de Scheme (GNU Guile) que también permite la personalización y extensión por parte del usuario.[3]

Interacción con otros programas editar

Uno de los entornos más completos para trabajar con LilyPond es Frescobaldi, de Wilbert Berendsen.

El plug-in OOoLilyPond[4]​ para OpenOffice.org y LibreOffice permite insertar fragmentos de música elaborados con LilyPond dentro de los documentos del procesador de texto Write, muy fácilmente.

El plug-in LilyPondTool,[5]​ de Bertalan Fodor, para el editor jEdit, era otra posibilidad hasta que su desarrollo se detuvo definitivamente en la versión 2.14.

Existen programas como Denemo, que se integran como interfaz gráfica para LilyPond. Denemo incluye a LilyPond de forma empotrada.

El secuenciador MIDI Rosegarden y los programas gráficos de notación musical MuseScore, NoteEdit y NtEd pueden exportar archivos directamente al formato de LilyPond. MuseScore anunció que la exportación a LilyPond sería eliminada en la próxima versión[6]​ para concentrar los esfuerzos en la entrada y salida en formato MusicXML, que LilyPond puede importar.

Usuarios destacados de LilyPond editar

Algunos de los usuarios del programa LilyPond que es significativo mencionar son:

  • Valentin Villenave, compositor, quien estrenó en febrero de 2009, en la Opéra Comédie de Montpellier, su ópera "Affaire étrangère"[7]​ junto al dibujante de cómic Lewis Trondheim y la licenció como si fuese un programa bajo copyleft, publicando su código en un repositorio git de control de versiones para su descarga pública.
  • Laura Conrad mantiene una editorial, Serpent Publications, de partituras de música del renacimiento elaboradas con LilyPond.
  • Reinhold Kainhofer es el editor de la empresa Edition Kainhofer. que utiliza exclusivamente este programa.
  • Wilbert Berendsen, compositor y organista holandés, mantiene una amplia colección de música vocal y para órgano.

Origen del nombre editar

LilyPond (del inglés "lily pond" que significa "estanque de nenúfares") debe su nombre a Suzanne, una chica compañera de Han-Wen Nienhuys en una orquesta sinfónica de aficionados, que tocaba la flauta y el violonchelo y con la que salía. Susan (Suzanne) en hebreo significa "nenúfar".

Por su parte, Jan Nieuwenhuizen salía con otra chica llamada Roos que también tocaba el violonchelo. Roos es "rosa" en holandés, y el programa Rosegarden (en inglés "jardín de rosas") es un secuenciador MIDI que exporta las partituras en el formato de LilyPond.[9]

El nombre de la fuente tipográfica Feta, que contiene la mayor parte de los glifos musicales, es un guiño privado proveniente de Font-Ent-Tja, el nombre de otra chica que los autores originales conocían. Parmesan es un queso madurado que dio nombre a la fuente utilizada para música antigua. Cuando se creó el tipo OTF Emmentaler que incluía a las dos fuentes anteriores junto con el alfabeto, el tipo recibió el nombre de un queso grande y lleno de agujeros, pues muchos códigos de la codificación personalizada de la tabla de glifos estaban vacíos.[10]

Ejemplo de un archivo de entrada de LilyPond editar

LilyPond es un sistema que consta de un programa procesador de los archivos de entrada, y un lenguaje de marcado en que se escriben estos archivos de entrada. Este es un ejemplo completo que define una partitura sencilla con dos pentagramas y un compás.

                                                       % Ejemplo de una plantilla simple para música de piano
\version "2.24.0"                                      % la declaración de versión permite actualizar la sintaxis automáticamente
     superior = \relative c'' {                        % definición de una variable en modo relativo
        \clef treble                                   % clave de sol (treble) (predeterminada, opcional)
        \key c \major                                  % tonalidad, do mayor (predeterminada, opcional)
        \time 4/4                                      % compás, 4/4 (predeterminado, opcional)
     
        a4 b c d                                       % la, si, do, re (negras; se recuerda la última duración)
     }
     
     inferior = \relative c {
        \clef bass                                     % clave de fa (bass)
        \key c \major
        \time 4/4                                      % opcional, el compás se hereda del otro pentagrama
     
        a2 c                                           % la, do (blancas)
     }
     
     \score {                                          % el contexto de partitura (predeterminado, opcional)
        \new PianoStaff <<                             % un contexto para piano con una llave que abarca varios pentagramas 
           \set PianoStaff.instrumentName = "Piano"    % modificación de una propiedad de este contexto: nombre del instrumento
           \new Staff { \superior }                    % un contexto de pentagrama e invocación a una variable definida previamente
           \new Staff { \inferior }                    % un contexto de pentagrama e invocación a una variable definida previamente
        >>
        \layout { }                                    % el bloque layout (opcional) permite definir parámetros de disposición de página
        \midi { }                                      % la presencia de un bloque midi (opcional) produce una salida MIDI a un archivo
     }

A continuación aparece la imagen de música que LilyPond produce a partir de este código. La imagen está producida por la extensión Score de MediaWiki, que acepta código de LilyPond directamente.

 

Características del lenguaje de tipografía musical LilyPond editar

Dentro de las categorías de programas de ordenador, puede considerarse a LilyPond dentro de la clase de los compiladores especializados en tipografía, al estilo de LaTeX. La única función del programa es procesar el archivo de entrada, por lo que no incorpora ninguna interfaz distinto a este archivo de entrada. Ello lo caracteriza a veces erróneamente como un programa "en modo texto", cuando en realidad no es más que un compilador.

La sintaxis del lenguaje LilyPond desciende directamente de la de PovRay, con la diferencia de que las palabras clave están precedidas de barra invertida. La similitud en la sintaxis tiene su origen en el hecho de que heredó directamente el código de Bison para la definición de la gramática, que fue posteriormente modificada.

El texto después de un signo de porcentaje (%) es un comentario. Los signos dobles de porcentaje se utilizan aquí para mejorar la legibilidad.

La estructura de un partitura escrita en el lenguaje LilyPond sigue la misma jerarquía de expresiones que la música que pretende tipografiar. Una partitura es una sola expresión musical compuesta, que consiste en un bloque entre llaves { } precedido opcionalmente de una función o palabra clave con barra invertida. Las expresiones compuestas pueden comprender en su interior otras expresiones en secuencia, o disponerse entre ángulos dobles << >> para indicar que las expresiones son simultáneas. De esta forma se refleja el aspecto bidimensional de la música, en que al mismo tiempo existe una secuencia temporal "horizontal" y una polifonía "vertical" en los acordes o en la simultaneidad de las voces o partes instrumentales. Estas propiedades hacen que el lenguaje LilyPond tenga un potencial que no se limita a la tipografía musical, sino que sirve para representar la música con su propia semántica y así poderlo analizar mecánicamente como música o producir fácilmente archivos MIDI.

Las propiedades de los objetos jerárquicos de la música están representados en el lenguaje LilyPond mediante "contextos" que son trazados gráficamente por un plug-in (complemento) llamado "grabador". Así, tenemos un contexto predeterminado "Score" (partitura) dentro del que se insertan contextos de "Staff" (pentagrama) y en ellos se alojan contextos "Voice" o de voz. Para la letra de las canciones tenemos los contextos "Lyrics". Los contextos se crean explícitamente mediante la instrucción \new y pueden recibir un nombre en el momento de su creación. Se crea automáticamente un contexto Score si no se invoca explícitamente \new Score, así como dentro de los pentagramas se crean automáticamente contextos Voice para alojar las notas. La polifonía explícita en un solo pentagrama se puede implementar creando más de un contexto Voice dentro de un contexto Staff.

En LilyPond, las notas se introducen en un formato que especifica nota, altura y duración; la altura se representa mediante el nombre de las notas en idioma inglés como en c d e f g a b o, en otros idiomas como el español, mediante:

\language "español"
\relative do' { do re mi fa sol la si do }
 

Las octavas de la altura se representan mediante series de apóstrofos o comas, que representan una octava hacia arriba o hacia abajo a partir de la base, respectivamente. Por ejemplo, a' es un La, una octava hacia arriba a partir de la base.

Los valores o duraciones de las notas se añaden a la altura de la nota como un número que sigue el denominador de la fracción que divide a la redonda. Así tenemos el 1 para la propia redonda y el 2, 4, 8, 16 para la blanca, negra, corchea y semicorchea respectivamente. No existe un límite artificial a las duraciones, aunque se dispone de glifos para representar solamente hasta la garrapatea (1/128 de redonda).

El empleo de paréntesis y corchetes no tiene el significado habitual de encerrar o agrupar notas, sino que el paréntesis de apertura se coloca después de una nota para marcarla como la primera de una ligadura de expresión, como en a( b c d e). De igual forma, las barras de corchea dan comienzo en la nota que está marcada por su derecha con un corchete de apertura, como en a8[ b c d].

LilyPond tiene dos modos de introducir las alturas de las notas: absoluto y relativo. En el modo absoluto siempre se especifican las alturas, nota por nota, relativo a la base. En el modo relativo, cuando la melodía se mantiene dentro de ciertos límites, se supone que las notas con una altura no especificada se encuentran “cerca” de la última nota y los especificadores de octava se utilizan solamente cuando el intervalo desde la nota precedente es mayor de una cuarta.

Los archivos de entrada de LilyPond deben escribirse en la codificación UTF-8. Ello hace posible la combinación de cualquier conjunto de idiomas en el mismo archivo.

Comparación con otros programas de edición de partituras editar

En las comparaciones con otros paquetes de composición tipográfica de partituras musicales como Sibelius o Finale, el programa LilyPond acusa puntos fuertes y no pocas objeciones. La mayor objeción que se le suele achacar es su paradigma "no visual" de manejo a través de un código calificado a veces como "difícil". También se ha tildado de "no apto para músicos" y de "poco intuitivo". Los autores del programa y sus usuarios habituales replican exponiendo una serie de puntos clave en defensa del paradigma orientado a texto:

  • El amplio parque de usuarios está formado por músicos, no por programadores.
  • El usuario novato debe leerse la documentación, comenzando por el tutorial.
  • Como compilador, sabemos por LaTeX, C o cualquier otro lenguaje de programación, que la potencia de un código expresivo y flexible supera a la del engorroso manejo del ratón para representar exactamente lo que queremos, sin ambigüedades.
  • La calidad del resultado es muy elevada porque incorpora de forma predeterminada reglas que evitan colisiones entre objetos, correcciones ópticas en función del espacio disponible y del tamaño de la tipografía, entre otras. Además, para conseguir cualquier funcionalidad avanzada no se requiere nada más que copiar el fragmento de código donde esta funcionalidad se invoque, procedente de los manuales, de las listas de correo de usuarios o de los repositorios de fragmentos de código existentes.

En cuanto a la velocidad de introducción de la música, algunos estudios informales como el de Andrew Hawryluk[11]​ señalan que en LilyPond es más lenta la introducción de las notas pero más rápida la obtención de un resultado final de alta calidad, mientras que en los programas visuales gráficos la introducción de las notas representa un pequeño porcentaje del tiempo total destinado a completar una partitura con un aspecto decente.

Véase también editar

Referencias editar

  1. Han-Wen Nienhuys. «LilyPond — Ensayo sobre grabado musical automatizado. Concursos de belleza.». Consultado el 2015. 
  2. Han-Wen Nienhuys. «LilyPond — Ensayo sobre grabado musical automatizado. Espaciado óptico.». Consultado el 2015. 
  3. "LilyPond está enlazado con GUILE, la biblioteca Scheme de GNU para la programación de extensiones. La biblioteca Scheme proporciona el pegamento que une las rutinas de bajo nivel y los módulos separados escritos en C++."[1]
  4. Samuel Hartmann. «OOoLilyPond (OLy) - Empleo de notación musical dentro de OpenOffice.org». Consultado el 2015. 
  5. Bertalan Fodor. «LilyPondTool website: Home». Archivado desde el original el 19 de octubre de 2013. Consultado el 2009. 
  6. MuseScore. «Lilypond export is removed for next version in favour of consolidating efforts on MusicXML i/o» (en inglés). Consultado el 19 de diciembre de 2013. 
  7. Valentin Villenave. «Affaire étrangère : le mini-site officiel» (en francés). Consultado el 2015. 
  8. Nicolas Sceaux. «Public Git Hosting - nenuvar.git/summary» (en francés). Consultado el 2009. 
  9. «LilyPond - About». Archivado desde el original el 1 de abril de 2009. Consultado el 2009. 
  10. «Nabble - Gnu - Lilypond - Dev - Appendix: Feta or Emmentaler». Consultado el 2009.  (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).
  11. «Music by Andrew». Consultado el 2009. 

Enlaces externos editar