2.5 Conversiones manuales
En teoría, un programa como convert-ly
debería poder
tratar cualquier cambio en la sintaxis. Después de todo, un
programa de ordenador interpreta las versiones antigua y nueva,
por lo que otro programa de ordenador podría traducir un archivo
al otro1.
Sin embargo, el proyecto LilyPond cuenta con unos recursos limitados: no todas las conversiones se efectúan automáticamente. A continuación aparece una lista de los problemas conocidos.
1.6->2.0: No siempre convierte el bajo cifrado correctamente, específicamente cosas como {< >}. El comentario de Mats sobre cómo solventar el problema: Para poder ejecutar convert-ly sobre él, primero sustituí todas las apariciones de '{<' a algo mudo como '{#' y de forma similar sustituí '>}' con '&}'. Después de la conversión, pude volver a cambiarlos de '{ #' a '{ <' y de '& }' a '> }'. No convierte todos los marcados de texto correctamente. En sintaxis antigua, se podían agrupar varios marcados entre paréntesis, p.ej. -#'((bold italic) "cadena") Esto se convierte incorrectamente en -\markup{{\bold italic} "cadena"} en vez del correcto -\markup{\bold \italic "cadena"} 2.0->2.2: No maneja \partCombine No hace \addlyrics => \lyricsto, esto rompe algunas partituras con varias estrofas. 2.0->2.4: \magnify no se cambia por \fontsize. - \magnify #m => \fontsize #f, donde f = 6ln(m)/ln(2) remove-tag no se cambia. - \applyMusic #(remove-tag '. . .) => \keepWithTag #'. . . first-page-number no se cambia. - first-page-number no => print-first-page-number = ##f Los saltos de línea en las cadenas de cabecera no se convierten. - \\\\ como salto de línea en las cadenas de \header => \markup \center-align < "Primera línea" "Segunda línea" > Los terminadores de crescendo y decrescendo no se convierten. - \rced => \! - \rc => \! 2.2->2.4: \turnOff (usado en \set Staff.VoltaBracket = \turnOff) no se convierte adecuadamente. 2.4.2->2.5.9 \markup{ \center-align <{ ... }> } se tendría que convertir en: \markup{ \center-align {\line { ... }} } pero ahora, falta el \line. 2.4->2.6 Los caracteres especiales de LaTeX como $~$ en el texto no se convierten a UTF8. 2.8 \score{} ahora debe empezar con una expresión musical. Cualquier otra cosa (en particular, \header{}) debe ir después de la música.
Notas el pie
[1] Al menos, esto es posible en cualquier archivo de LilyPond que no contenga Scheme. Si hay Scheme dentro del archivo, contiene un lenguaje Turing-completo, y nos encontramos con el famoso “Problema de la parada” en informática.