thumb|500px|right|Les Néréides, de Arthur Gray, partitura generada por 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:

~$ 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 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.

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), 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 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."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++."

Interacción con otros programas miniaturadeimagen|Parte de Adeste Fidelis, generada por LilyPond. Uno de los entornos más completos para trabajar con LilyPond es Frescobaldi, de Wilbert Berendsen.

El plug-in OOoLilyPond 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, 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 para concentrar los esfuerzos en la entrada y salida en formato MusicXML, que LilyPond puede importar.

Usuarios destacados de LilyPond 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" 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.

Nicolas Sceaux, quien mantiene un repositorio git con versiones de referencia de óperas y oratorios barrocos de autores como Haendel, Charpentier, Lully o Rameau.

Laura Conrad mantiene una editorial, Serpent Publications, de partituras de música del renacimiento elaboradas con LilyPond.

El director de orquesta Aurélien Bello hace grandes proyectos como las reorquestaciones de los Cuadros de una exposición, de Modest Músorgski, y una versión para niños de El anillo del nibelungo de Richard Wagner.

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

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.

Ejemplo de un archivo de entrada de LilyPond 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

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.