¿Cuál es la mejor manera de incorporar automáticamente una fuente de LilyPond archivo en varias llaves?

StackOverflow https://stackoverflow.com/questions/799837

Pregunta

problema

Estoy usando LilyPond para componer la música de la hoja para un coro de la iglesia a realizar.Dependiendo de quién está disponible en cualquier semana dada, las canciones se reproducirán en varias teclas.Tenemos una increíble pianista que puede jugar a cualquier cosa que lanzar en ella y los guitarristas normalmente el lápiz en la alternativa de acordes, pero quiero hacer las cosas más fácil por tener bellamente componer la música de la hoja disponible en cualquier clave que queremos.

Así que decir que vamos a cantar nuestro Abecedario.En primer lugar voy a tomar de cualquier fuente transcripciones disponibles y entrar en una de LilyPond secuencia de comandos:

melody = \relative c' {
    c c g g
    a a g2
    f f e e
    d d c2 }

Quiero que la habilidad para aplicar de forma automática, de modo que si quiero toda la cosa, en 'G' me envuelve la canción en un ransponer llamar así:

melody = \transpose c g \relative c' {
    c c g g
    a a g2
    f f e e
    d d c2 }

Lo que realmente quiero es sustituir algo por la 'g' y generar la salida para la melodía varias veces.Simple de LilyPond variables no parecen funcionar aquí, y hasta ahora no he tenido éxito en la definición de un esquema de función para hacer esto.

Lo que yo he recurrido a por el momento es tomar el archivo de arriba, llame a twinkle.ly y convertirlo en un M4 script llamado brillo.ly.m4, el contenido de que se parecen a este:

melody = \transpose c _key \relative c' {
c c g g
a a g2
f f e e
d d c2 }

Yo, a continuación, compile el rato, cosa que al ejecutar la siguiente línea:

> m4 -D _key=g twinkle.ly.m4 > twinkle_g.ly && lilypond twinkle_g.ly

He escrito un Makefile para hacer esto, para mí, la definición de reglas para cada una de las canciones que tengo y cada una de las teclas que me interesa.

pregunta Tiene que haber una mejor manera de ir sobre esto.Dado que Lilypond apoya incrustado esquema, yo prefiero no utilizar una macro preprocesados en él.Ha nadie ha dado con una solución a este mismo problema?

¿Fue útil?

Solución

Se puede hacer referencia a la variable de la melodía y se ha transpuesto en las teclas deseadas:

melody = \relative c' { c8 e c e g4 g }
\score {
  \transpose c d \melody
}
\score {
  \transpose c e \melody
}
% etc.

Si desea dar salida a las transposiciones como archivos separados, incrustarlos en bloques \ book.

Otros consejos

Si desea crear dos copias del mismo fragmento, una transposición y no uno, puede utilizar \displayLilyMusic . Por ejemplo,

{
  \displayLilyMusic \transpose c a, { c4 e g a bes }
}

se mostrará

{ a,4 cis e fis g }

Copiar y pegar esta salida siempre que lo desee.

Utilice la editor de Frescobaldi para lilypond . Proporciona una poderosa herramienta de transposición.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top