(Dedicado a mi padre)
#########################
Notas de revisiones:
Rev 0: 19 julio 2011. Publicado.
#########################
Llevo un tiempo usando lilypond (página oficial, wikipedia, ambas en castellano) para escribir partituras, sobretodo para guitarra. El otro día, mi amigo y gran guitarrista Unai vio (y amablemente se animó a interpretar) alguna de ellas. Parece que le gustaron y me animó a mejorarlas.
Antes de nada, el "disclaimer" de rigor: Soy un guitarrista aficionado que disfruta con lilypond por la belleza de la impresión, para reflexionar sobre lo que toco, mejorar posturas, entender mejor la música... Y porque me resulta un pasatiempos divertido. Al mismo tiempo, creo que puede ser una buena herramienta para algunos músicos que quizás aún no lo hayan descubierto. Esta entrada habla de mi experiencia autodidacta, con algunos ejemplos de mi proceso de aprendizaje y un par de piezas de música antigua que suelo tocar desde hace muchos años. Hay una habitación muy grande y yo estoy mirando por el ojo de la cerradura pero está bien saber que se puede disfrutar desde el primer día. Además, es un buen ejercicio mental.
Contrariamente a algunos mitos que podemos encontrar en internet, ni hay que saber C++ ni hay que esperar (al menos no más de unos segundos) para ver el resultado impreso. Lilypond se escribe en texto plano con un lenguaje no excesivamente complicado y orientado a la expresión musical.
Cuando falla la compilación o hay avisos de incoherencias, es un pequeño triunfo encontrar el problema y solucionarlo (me he comido una llave, el compás no cuadra...). Cada vez son menos estos fallos pues ya tengo mis plantillas para no tener que empezar desde cero cada vez. Cuando quiero representar algo no tan frecuente investigo en el manual y en el repositorio de snippets (fragmentos de código lilypond). Ver estos fragmentos por primera vez asusta un poco pero empezar es muy fácil. Por ejemplo, esto:
\version "2.14.1"
\score {
\relative c' {c d e f g a b c}
}
Produce esto:
Lo podéis probar ahora mismo en omet.ca, una página web para edición de partituras "online" (en progreso), que sirve entre otras cosas para generar pdf's a partir de código lilypond (más abajo están las instrucciones para instalar lilypond localmente). Simplemente copiar el código de arriba en la pestaña "Sandbox" y pulsar la flecha para compilar y aparecerá una nueva pestaña "Rendered" con la impresión de la partitura, así como un enlace directo para descargarlo en formato pdf.
Por aquello de "divide y vencerás" y también para aprovechar bloques de texto que sirvan como plantilla para partituras similares, conviene separar la melodía en un bloque diferente, como en el siguiente ejemplo, donde definimos la palabra clave "voz" con la sucesión de notas relativas a do alto y la invocamos más abajo dentro del bloque \score.
Observad que las líneas que empiezan por el símbolo de porcentaje, "%", son comentarios, es decir, no son tenidos en cuenta por lilypond pero vienen muy bien para nuestras referencias y recordatorios, en este ejemplo para numerar los compases. Por otro lado, las "tuberías", "|" sirven como separadores de compás; no son estrictamente necesarias pues lilypond imprimirá las barras de acuerdo al compás y a las duraciones de notas indicadas, hayamos escrito o no las tuberías. Sin embargo, éstas no sólo ayudan a guiarnos en el archivo de texto, sino que además habilitan la comprobación de compases: Si un compás no cuadra lilypond nos lo chivará.
Para hacerlo más legible podemos dejar líneas en blanco.
Este código da el mismo resultado que hemos visto arriba:
\version "2.14.1"
voz = \relative c'{
%1
c d e f |
%2
g a b c |
}
\score {
\voz
}
Sin haberlo indicado expresamente, el compás es de 4/4, la tonalidad do mayor (no se imprimió ninguna armadura), la clave de sol y las notas negras. Creo que es mejor indicarlo, por claridad y para que sea fácil cambiarlo (¡Editar un plantilla es fácil!). Así que obtenemos el mismo resultado con este código:
\version "2.14.1"
voz = \relative c'{
\key c \major
\time 4/4
\clef treble
%1
c4 d e f |
%2
g a b c |
}
\score {
\voz
}
Fijémonos ahora en la duración de las notas. La primera es una negra (se indica con un 4) y todas las siguientes, como no decimos otra cosa, son negras también.
En cuanto a la altura tonal, la primera nota toma la octava de referencia indicada en la variable "\relative". El apóstrofe (rayita arriba) indica que partimos de una octava más alta que el do central. La coma (rayita abajo) indicaría una octava más baja.
Veis que estoy usando el estilo anglosajón para los nombres de las notas. Si os resulta más cómodo, podéis cambiar al más familiar do, re, mi... simplemente indicando \language "espanol" (sí, sin eñe). Este código genera el mismo resultado:
\version "2.14.1"
\language "espanol"
voz = \relative do'{
\key do \major
\time 4/4
\clef treble
%1
do4 re mi fa |
%2
sol la si do |
}
\score {
\voz
}
Veamos otro ejemplo:
\version "2.14.1"
voz = \relative c''{
\key d \minor
\time 4/4
\clef treble
%1
c4 d bes bes, |
%2
f'1 |
}
\score {
\voz
}
que una vez compilado aparece así:
Como veis, he modificado la tonalidad (re menor) y la octava de referencia para la primera nota (c''). bes es "si bemol" (para indicar sostenido usaríamos "is", por ejemplo, cis sería "do sostenido"). La cuarta nota es un "si bemol" una octava más baja que la anterior y la nota del segundo compás es un "fa" que dura una redonda (duración 1).
Como hemos señalado antes, gracias al comando \relative, la altura tonal de una nota siempre es relativa a la anterior. Cuando los intervalos entre notas consecutivas son pequeños no indicamos apóstrofe ni coma y la nota irá a su lugar. Cuando son grandes, hay unas reglas para establecer la altura tonal correcta escribiendo apóstrofe, coma, o nada. Estas reglas están explicadas en el manual (alternativamente, se puede usar el viejo método de "prueba y error").
Observamos que, habiendo indicado la tonalidad de re menor, aparece la armadura correspondiente en la impresión, "si bemol". Pero ojo, en las notas del código lilypond debemos indicar siempre la alteración. En este caso, si hubiéramos escrito b en lugar de bes, habría aparecido un becuadro delante de cada nota "si".
Veis que las líneas adicionales, así como las barras de separación de compás, son un poco más gruesas que las líneas del pentagrama pues Lilypond imita la escritura tradicional grabada a mano. Como tantos otros detalles, esto también se puede modificar.
Ahora un poco más complicado, con dos voces (melodía y bajo):
\version "2.14.1"
global = {
\key c \major
\time 4/4
\tempo 4 = 104
}
alto = \relative c'' {
\clef treble
\transposition c
\stemUp
%1
r8 e4 dis8 e d16 c~ c8. c16 |
%2
d8 c d c d c16 a~ a4 |
}
bajo = \relative c' {
\transposition c
\stemDown
%1
c4 g c c |
%2
f, c' f, f |
}
\score {
\new Staff
<<
\new Voice { \global \alto }
\new Voice { \global \bajo }
>>
\layout {}
}
\score {
\unfoldRepeats
\new Staff \with { midiInstrument = "Acoustic Guitar (nylon)" }
<<
\new Voice { \global \alto }
\new Voice { \global \bajo }
>>
\midi {}
}
Que da esta salida (clicar para verla bien):
Como veis, he introducido una nueva variable "global" que irá en todas las voces, con la tonalidad, la signatura de compás y el tempo. En la voz "alto" señalo la clave de sol, indico que todas las plicas vayan hacia arriba por defecto (\stemUp) e indico \transposition c, ya que la guitarra es un instrumento traspuesto por una octava. Es decir, se escribe en clave de sol sin indicaciones adicionales (sin un 8 abajo) pero las notas están realmente en una octava más baja.
En la voz "bajo" no hace falta volver a señalar la clave pero sí la trasposición, y además quiero que las plicas vayan hacia abajo (\stemDown).
Además, duplico el bloque \score; uno para la impresión (\layout {}) y otro para la salida MIDI. En este caso podría haberlo hecho en un solo bloque pero para el MIDI es necesario "desdoblar las repeticiones" (\unfoldRepeats) cuando éstas existen.
Podíamos haber indicado también digitaciones y cuerdas. Por ejemplo, para indicar un "do" negra con puntillo en la quinta cuerda con el tercer dedo, escribiríamos "c4.\4-3". Si no vemos necesario indicar la cuerda pero queremos indicar el dedo, bastará con "c4.-3".
En general, cuanto más común o habitual es lo que queremos indicar, más sencillo es el código. Como veis, lilypond tiene su curva de aprendizaje pero la pendiente, aunque larga (infinita nos parece), es bastante suave.
En la versión 2.14.1 se puede producir la salida en formato svg, además de pdf. Esto es genial, pues gracias a un editor de gráficos vectoriales como inkscape podremos corregir pequeños detalles (como colisiones o desplazamientos excesivos para evitar colisiones) que sólo con lilypond, a veces resulta complicado. Además nos ofrece una forma muy cómoda de personalizar las partituras (dibujitos, fotos, sellos... cualquier cosa imaginable puede ir en el mismo papel con un poco de arte e imaginación).
Instalación de lilypond
Es posible que tu distribución no tenga la última versión disponible en sus repositorios. Por ejemplo, para ubuntu lucid está la 2.12.3, pero en el momento de escribir esto la última estable es la 2.14.1. Por cierto, la 2.12.3 no permite exportar a svg.
Las instrucciones de instalación están en la propia página de descarga:
cd RUTA-DEL-DIRECTORIO-DE-DESCARGA
sh lilypond-2.14.1-SISTEMA-OPERATIVO.sh
Esto instala lilypond al directorio personal. Yo prefiero instalar al sistema, como el resto de programas. Yo hice:
cd Descargas
sudo sh lilypond-2.14.1-1.linux-x86.sh --prefix /usr
Entorno de trabajo
Existen algunos editores gráficos para Lilypond que facilitan la creación de plantillas, entradas de notas, etc. Yo de momento lo estoy usando con un simple editor de texto. A veces uso vim, a veces gedit.
Además, abro una ventanita de terminal (terminator), con dos subventanas; una para generar los ficheros de salida y otra para lanzar el lector de pdf's, evince. Uso Audacious para reproducir el MIDI. Está bien escucharlo para comprobar que el tempo es el correcto y que no hay fallos de tonos o duraciones.
"Compilación del código lilypond"
Para generar el archivo pdf (y el MIDI en su caso), basta con poner en la terminal:
lilypond miarchivo.ly
donde archivo.ly es el archivo de texto con el código de lilypond.
Para obtener la salida a svg, debemos indicar:
lilypond -dbackend=svg miarchivo.ly
Como siempre, podemos ver más opciones con:
lilypond --help
Piezas casi terminadas
Las piezas que incluyo en [1] y en [2] son bastante antiguas. Quizás fueron escritas para vihuela. Si alguien sabe su nombre original, o su autor, por favor indicármelo. Estaban en una cinta de casette de mi hermano hace más de 20 años y las aprendí "de oído" con su ayuda. Ahora estoy intentando transcribirlas.
La estructura del código es muy similar a la que he presentado antes, aunque algo más completa. Incluye un bloque para la cabecera, definición del papel, márgenes, tamaños, distancias... Algún que otro "override" para modificar la impresión por defecto (las notas y algunas líneas me parecen excesivamente gruesas comparadas con algunas partituras impresas que he visto). Es entretenido cambiar estos parámetros o eliminarlos (mejor "comentar" la línea antes que borrarla) y ver cómo queda. Hay una parte de código de "definición de cejillas" que es incomprensible para mí en un 80%. Lo saqué del repositorio de snippets. Es que así quedan mejor, me parece.
Sólo hay que copiar el texto a un archivo, darle un nombre con la extensión .ly y compilarlo con lilypond. O bien, utilizar omet.ca. ¡A ver qué os parecen!
[1]: Anónimo medieval http://paste.ubuntu.com/641524/
[2]: Danza medieval http://paste.ubuntu.com/641525/
Agradecimentos:
Francisco Vila y resto del equipo de desarrollo.
Unai y Juan por animarme a seguir con lilypond.
Otros recursos y direcciones de interés relacionadas con lilypond
Un manual de iniciación escrito en 2005
Proyecto mutopia donde su pueden encontrar un montón de partituras con su correspondiente código lilypond
RADIO ESCOLA UN SOMNI FET REALITAT
Hace 6 años
fantastico pablo.La escritura de Lilypond es bella y hermosa, pero manejar la aplicacion es dificil.Yo te voy a seguir en tus pasos a ver si poco a poco me entero.Los cafes los pago yo,
ResponderEliminarsalud y gracias pablo.
vivaldis.
al final he podido compilar las dos piezas, hermosas melodias pero me son desconocidas, no puedo ayudarte a reconozer el autor.
ResponderEliminarvivaldis
Saludos amigo Pablo. Has entrado en el maravilloso mundo de lylypond y nos vas a hacer entrar a nosotros. :)
ResponderEliminarYo solo he hecho cosas bàsicas pero siempre he sabido de su potencia. Recuerdo que cuando utilizaba el noteedit el alma mater del producto final era lylypond.
Gràcias por tu información y buen verano.
Salut
Gracias por vuestros amables comentarios. ¡Que paséis un buen verano!
ResponderEliminarDesde hace unos meses estoy con Lilypond, es muy gratificante. Estoy acabando El sitio de Zaragoza. Espero participar en este foro para intercambiar experiencias.
ResponderEliminarHola Pablo. Estoy introduciendo un texto explicando la obra y no encuentro como hacer un subrayado de separacion. O sea poner esto _________________________ o esto --------------------------------------
ResponderEliminarsin tener que repetirlo asi:
\hspace #2.5 --------------------------------------------------------------------------------------------------------------------------
Hola,
ResponderEliminarYo soy más principiante que tú! El mejor sitio para plantear las dudas e intercambiar trucos de lilypond es la lista de correo. ¡Y en castellano!
https://lists.gnu.org/mailman/listinfo/lilypond-es
Gracias Pablo. Mira creo que la mejor manera de aprender es transcribiendo partituras. Es decir aquellas que tenemos desperdigadas por casa y deterioradas. Asi te obligas a buscar en Lilypond todos sus recursos. Por ejemplo, en estos momentos ando liado con el Sitio de Zaragoza, In the hills of Manchuria y el Saltiro de la Çardina. Cuando me canso de una, me paso a la otra.
ResponderEliminarExcelente tutorial, Pablo!! A ver si podemos hacer uso de tú excelente material estos días. Mucha gente usa sólo internet para encontrar respuestas, pero son las página como la tuya las que contribuyen con contenido real. Gracias.
ResponderEliminarPor cierto, fuentes bien informadas me han dicho que el allí próximo el patch rt podría estar terminado y que entonces alguna de las grandes distribuciones podría cambiar a linux rt por defecto.
Jfbus
Muy buen tutorial Pablo!!!
ResponderEliminarCon respecto a las canciones, la [1] no lo se, pero la [2] puede ser:
"Branle Cassandre & Pinagay" del Orchesographie de Thoinot Arbeau
http://www.youtube.com/watch?v=Sv8rRCYhKFw&feature=related
Espero que sea lo que buscas
Un saludo ;)
buenas, muy bueno tu post!. no sabía eso de poder escribir en español...¿y como se indica las alteraciones en español?. saludos!
ResponderEliminar