Domanda

problema

LilyPond per comporre spartiti per un coro di chiesa da eseguire. A seconda di chi è disponibile su una determinata settimana, brani vengono riprodotti in varie chiavi. Abbiamo un pianista straordinario che può giocare qualsiasi cosa buttare a lei e chitarristi in genere matita in accordi alternativi, ma voglio rendere le cose più facili da avere spartiti splendidamente typeset disponibile in qualsiasi chiave che vogliamo.

Quindi, diciamo che stiamo andando a cantare le nostre ABC. In primo luogo mi prendo qualsiasi fonte trascrizioni disponibili e inseriscilo in uno script LilyPond:

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

Voglio la possibilità di attuare la presente automaticamente, quindi se voglio il tutto in 'G' Mi avvolgo la canzone in una chiamata di trasposizione \ in questo modo:

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

Quello che voglio è quello di sostituire qualcosa per la 'g' e generare l'output per la melodia più volte. Semplici variabili LilyPond non sembrano lavorare qui, e finora sono stato infruttuoso nella definizione di una funzione di schema per fare questo.

Quello che ho travisato per il momento sta prendendo il file di cui sopra, lo chiamano twinkle.ly e trasformandolo in un M4 script chiamato twinkle.ly.m4, il cui contenuto simile a questa:

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

Ho poi compilo la cosa, mentre eseguendo la seguente riga:

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

Ho scritto un Makefile di fare questo per me, la definizione di regole per ogni canzone che ho e ogni chiave mi interessa.

questione Ci deve essere un modo migliore di andare su questo. Dato che Lilypond PHP supporta schema, preferirei non usare una macro pre-elaborato su di esso. chiunque altro ha messo a punto una soluzione a questo stesso problema?

È stato utile?

Soluzione

È possibile fare riferimento alla variabile melodia e lo hanno trasposto nei tasti desiderati:

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

Se si desidera attivare le trasposizioni come file separati, li incorporano in blocchi \ libro.

Altri suggerimenti

Se si desidera creare due copie dello stesso frammento, una trasposizione e non uno, è possibile utilizzare \displayLilyMusic . Ad esempio,

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

visualizza

{ a,4 cis e fis g }

Copia questa uscita e incollarlo dove vuoi.

editor di Frescobaldi per lilypond . Esso fornisce un potente strumento di trasposizione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top